|
一、单选题(共 20 道试题,共 100 分。) V 1. 以下有关宏替换的叙述不正确的是( )
A. 宏替换不占用运行时间
B. 宏名无类型
C. 宏替换只是字符替换
D. 宏名必须用大写字母表示
2. 不能把字符串:Hello!赋给数组b的语句是( )
A. char b[10]={'H','e','l','l','o','!'};
B. char b[10];b="Hello!";
C. char b[10];strcpy(b,"Hello!");
D. char b[10]="Hello!";
3. 执行下面的程序后,a的值是( )#define SQR(X) X*X main( ){ int a=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);}
A. 10
B. 1
C. 9
D. 0
4. 请选出以下语句的输出结果( )printf("%d\n",strlen("\t\"\065\xff\n"));
A. 5
B. 14
C. 8
D. 输出项不合法,无正常输出
5. 以下程序的输出结果是( )main(){ int x=10,y=10; printf("%d %d\n",x--,--y);}
A. 10 10
B. 9 9
C. 9 10
D. 10 9
6. 设有如下程序 :#include<stdio.h> main(){ int **k, *j, i=100;j=&i; k=&j;printf("%d\n", **k);} 上面程序的输出结果是( )
A. 运行错误
B. 100
C. i的地址
D. j的地址
7. 在C语言中,合法的长整型常数是( )
A. 0L
B. 4962710
C. 0.054838743
D. 2.1869e10
8. 运行以下程序后,如果从键盘上输入 china#<回车>,则输出结果为( )#include<stdio,h>main(){ int v1=0,v2=0;char ch;while((ch=getchar())!='#')switch(ch){ case 'a';case 'h';default; v1++;case '0'; v2++;}printf("%d,%d\n",v1,v2);}
A. 2,0
B. 5,0
C. 5,5
D. 2,5
9. 在以下一组运算符中,优先级最高的运算符是( )
A. <=
B. =
C. %
D. &&
10. 有以下程序:#include main(){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b); }输出结果是( )
A. 2,1
B. 3,2
C. 4,3
D. 2,-1
11. 设有以下宏定义#define N 3 #define Y(n) ( (N+1)*n)则执行语句:z=2 * (N+Y(5+1));后,z的值为 ( )
A. 出错
B. 42
C. 48
D. 54
12. 若有宏定义如下#define X 5 #define Y X+1 #define Z Y * X / 2则执行以下printf语句后,输出结果是( )int a; a=Yrintf("%d\n", Z)rintf("%d\n", - - a);
A. 7 6
B. 12 6
C. 12 5
D. 7 5
13. 若有以下定义: char a; int b;float c; double d;则表达式a*b+d-c值的类型为( )
A. float
B. int
C. char
D. double
14. 请选出可用作C语言用户标识符的一组标识符( )
A. void define WORD
B. a3_b3 _123 IF
C. For -abc Case
D. 2a DO sizeof
15. 下面能正确进行字符串赋值操作的语句是( )
A. char s[5]={"ABCDE"};
B. char s[5]={'A','B','C','D','E'};
C. char *s;s="ABCDEF";
D. char *s; scanf("%s",s);
16. 设有如下定义:char *aa[2]={"abcd","ABCD"};则以下就法中正确的是( )
A. aa数组成元素的值分别是"abcd"和"ABCD"
B. aa是指针变量,它指向含有两个数组元素的字符型一维数组
C. aa数组的两个元素分别存放的是含有4个字符的字符串的首地址
D. aa数组的两个元素中各自存放了字符'a'和'A'的地址
17. 下列程序执行后输出的结果是( )int d=1;fun (int q) { int d=5;d + =q+ +;printf("%d".d);}main( ){ int a=3;fun(a);d + = a + +;printf("%d\n",d);}
A. 8 4
B. 9 6
C. 9 4
D. 8 5
18. 请选出合法的C语言赋值语句( )
A. a=b=58
B. i++
C. a=58,b=58
D. k=int(a+b)
19. 请读程序#define ADD(x) x+x main(){int m=1, n=2, k=3;int sum=ADD(m+n) * k;printf("sum=%d", sum);}上面程序的运行结果是( )
A. sum=9
B. sum=10
C. sum=12
D. sum=18
20. 以下说法中正确的是( )
A. #define和printf都是C语句###define是C语句,而printf不是##printf是C语句,但#define不是###define和printf都不是C语句
B. #define是C语句,而printf不是
C. printf是C语句,但#define不是
D. #define和printf都不是C语句
谋学网www.mouxue.com
|
|