|
一、单选题(共 25 道试题,共 100 分。)V 1. 下列有关字符数组与字符串的说法中,正确的是 _______ 。
A. 字符数组中存放的一定是一个字符串
B. 所有的字符数组都可以被当作字符串处理
C. 对存放字符串的字符数组可像一般数组一样对数组中单个元素操作
D. 一个字符数组可以认为就是一个字符串
2. 判断字符串a和b是否相等,应当使用 ________ 。
A. if(a==b)
B. if(a=b)
C. if(strcpy(a,b))
D. if(strcmp(a,b))
3. 以下正确的程序段是 。
A. char str[2]; scanf("%s",&str);
B. char *p; scanf("%s",p);
C. char str[20]; scnaf("%s",&str[2]);
D. char str[20],*p=str; scanf("%s",p[2]);
4. C语言的定义语句"float *a[5];"的含义是
A. a是一个数组,其数组的每一个元素是指向实型数据的指针
B. a是一个指针,指向一个数组,数组的元素为实型
C. A)、B)均不对,但它是C语言正确的语句
D. C语言不允许这样定义语句
5. 以下程序的输出结果是 。 #include<stdio.h> #include<string.h> main( ) { char *s1="AbCbEf",*s2="AB"; s1++;s2++; printf("%d\n",strcmp(s1,s2)); }
A. 正数
B. 负数
C. 零
D. 不确定的值
6. 下面各语句行中,能正确进行赋字符串操作的语句是 _________ 。
A. char st[4][5]={ "ABCDE"}
B. char st[5]={ˊAˊ,ˊBˊ,ˊCˊ,ˊDˊ,ˊEˊ}
C. char *s="ABCDE"
D. char *s;scanf("%s",s);
7. 请阅读以下程序: main() { int a=5,b=0,c=0; if(a=b+c) printf("% * * *\n"); else printf("% $ $ $\n"); } 以上程序 。
A. 有语法错误不能通过编译
B. 可以通过编译但不能通过连
C. 输出* * *
D. 输出$ $ $
8. 以下程序段的输出结果是 。 int i=10; switch(i+1) { case 10: i++;break; case 11: ++i; case 12: ++i;break; default: i=i+1; }
A. 11
B. 13
C. 12
D. 14
9. 下列运算符中优先级最高的是 ________ 。
A. <
B. +
C. &&
D. !=
10. 下列对字符串的说法中,错误的是 _______ 。
A. 字符串就是一个字符数组
B. 字符串可以整体输入输出
C. 字符串可以比较大小
D. 存储字符串所需的内存空间等于字符串的长度
11. 以下有关宏替换不正确的是 _______ 。
A. 宏替换不占用运行时间
B. 宏名无类型
C. 宏替换只是字符替换
D. 宏名必须用大写字母表示
12. 若用数组名做函数调用的实参,传递给形参的是 _________ 。
A. 数组的首地址
B. 数组中第一个元素的值
C. 数组中全部元素的值
D. 数组元素的个数
13. C语言程序的基本单位是 _______ 。
A. 程序行
B. 语句
C. 函数
D. 字符
14. 已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是 。
A. 一个整型变量,代表要读入的数据项总数
B. 一个文件指针,指向要读的文件
C. 一个指针,指向要读入数据的存放地址
D. 一个存储区,存放要读的数据项
15. 设有程序段如下: int k=10; while (k=0) k=k-1; 则下面描述中正确的是 。
A. while循环执行10次
B. 循环是无限循环
C. 循环体语句一次也不执行
D. 循环体语句执行一次
16. 定义如下变量和数组: int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是 。 for(i=0;i<3;i++) printf("%d",x[i][2-i]);
A. 1 5 9
B. 1 4 7
C. 3 5 7
D. 3 6 9
17. 设有如下函数定义: int f(char *s) { char *p=s; while(*p!=ˊ\0ˊ) p++; return(p-s); } 如果在主函数中用下面的语句调用上述函数,则输出结果为 。 printf("%d\n",f("Beiging"));
A. 3
B. 6
C. 0
D. 7
18. 以下正确的程序段是 _______ 。
A. char str[2]
B. char *p; scanf("%s",&str); scanf("%s",p);
C. char str[20];
D. char str[20],*p=str; scnaf("%s",&str[2]); scanf("%s",p[2]);
19. 以下一维数组a的正确定义 是 _______ 。
A. int a(10);
B. int n=10,a[n]
C. int n;
D. #define SIZE 10 scanf( " %d ",&n); int a[SIZE]; int a[n];
20. 执行以下程序后,y的值是 。 main() { int a[]={2,4,6,8,10}; int y=1,x,*p; p=&a[1]; for(x=0;x<3;x++) y+=*(p+x); printf("%d\n",y); }
A. 17
B. 18
C. 19
D. 20
21. 下列函数调用语句含有实参的个数为 。func((exp1,exp2),(exp3,exp4,exp50);
A. 1
B. 2
C. 3
D. 4
22. 下面各语句行中,能正确进行赋字符串操作的语句是 。
A. char st[4][5]={ "ABCDE"};
B. char st[5]={ˊAˊ,ˊBˊ,ˊCˊ,ˊDˊ,ˊEˊ};
C. char *s="ABCDE";
D. char *s;scanf("%s",s);
23. C语言规定:在一个源程序中,main函数的位置是 _________ 。
A. 必须在最开始
B. 必须在系统调用的库函数的后面
C. 可以任意
D. 必须在最后
24. 以下程序段的输出结果是 。 main() { int n[3],i,j,k; for(i=0;i<3;i++) n[i]=0; k=2; for(i=0;i<k;i++) for(j=0;j<k;j++) n[j]=n[i]+1; printf("%d\n",n[1]); }
A. 2
B. 1
C. 0
D. 3
25. 设int a=0,b=5,c=2;选择可执行x++的语句是 。
A. if(a) x++;
B. if(a=b) x++;
C. if(a =< b) x++;
D. if(!(b-c)) x++;
|
|