计算机二级模拟考试试题
D
选D。Stract是剪切 “abc”到a 的意思 此 B中的a[i]=0因为a是一个字符,所以,0作为ASCII码输
入,因此是a[i]有’\0’的意思,作为字符串的结尾
A scanf(“格式说明”,存储地址);因为ch是一个数值,&ch是ch这个字符的地址,所以选A
C。Switch里面,如果没有break,则执行除了满足本身的case之外,还要执行这句一下的语句直到
switch语句结束。此外,60/10这个数,60是int类型,10 也是int类型,也就是说,两个相除还是
int,故没有小数。Eg:69/10=6
B。Include 或者include”stdio.h”都是可以的
i<100则i=100这次不执行,遇到这种问题,把100换成1看看多少次依次类推就可以了
A.Fopen中”w”是为输出打开一个文本文件,”wb” 为输出打开一个二进制文件,”r” 输入打开一
个文本文件,”rb” 为输入打开一个二进制文件
B.Continue 结束本次循环,而break,结束整个循环,exit退出程序,return一般用于函数调用,
返回一个值
D。int func(int a[],int n)中,int a[]表示要输入一个数组,而在数组中,a表示数组的首地址。
并且,a[10]这个答案,已经超出了表示范围,
C。因为要使a里面存 ’ 符号需要写a=’’’’ ;也就是要注明两次’符号才可以。而16本身是个字符串,加
入单引号也是不对的。字符串需要用“”指明,而字符要用’’指明
D。数组中定义n个,而实际计数是0~n-1
C。同上
C。指针,head,p,可以视为指向一个地址的指针,里面存放的是地址。而p->next也是存放地址的。
也就是说,这道题的操作的结果就是要将head指向p,p->next指向一开始head所指向的位置,进而
串成一个链表。
A。21%9=3 3/float(2)=1.5[转制,有一个浮点则得数为浮点,也就是带小数]
后面4/5=0 0*5=0 1.5+0=1.5
D *代表取后面地址的数值。执行完while(*p!=3)后,p执政指向3 (a[1]),即*p=3,故要指向7则
指针需要移动两位。*(p+2)=7
程序功能:函数f的功能是从字符串中删除所有的数字字符,并返回删除的个数;主程序调用函数f
删除字符串str中的数字字符,并输出删除的字符数。
源程序:
#include
#include
int f(char s[])
{ int i=0;
____1____; int count=0
while(s[i]!='\0')
if(s[i]>='0'&&s[i]<='9')
{
strcpy(s+i,s+i+1);
count=count+1; /* count表示删除的数字字符数 */
}
else
____2____; i++
return ____3____; count
}
void main()
{ char str[80];
int m;
printf("输入字符串:");
gets(str);
m=____4____;f(str)
printf("删除数字后的字符串:");
puts(str);
printf("删除的数字字符个数:%d",____5____); m
}
输入一行字符串,分别统计字符串中各元音字母(AEIOU)的个数(不分大小写)。
源程序:
#include
void main()
{ char a[80];
int n[5]={0,0,0,0,0}; /* 数组n存放各元音字母个数 */
____1____; int i
gets(a);
for(____2____; a[i]!='\0'; i++) i=0
switch(____3____) a[i]
{
case 'A':
case 'a': n[0]++; break;
case 'E':
ca