c题库选择题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题
1、关于C语言数据类型的叙述,正确的是(C)。
A)枚举类型不是基本类型B)数组不是构造类型
C)变量必须先定义后使用D)不允许使用空类型
2、下面关于C语言用户标识符的描述,正确的是(D)。
A)不区分大小写B)用户标识符不能描述常量
C)类型名也是用户标识符D)用户标识符可以作为变量名
3、下面叙述正确的是(B)。
A)2/3与2.0/3.0等价B)(int)2.0/3与2/3等价
C)++5与6等价D)‟A‟与”A”等价
4、已知char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是(B)。
A)scanf(“%d”,&a); B)scanf(“%lf”,&a);
C)scanf(“%c”,&a);D)scanf(“%u”,&a);
5、下面叙述中,(A)不是结构化程序设计三种基本结构的共同特点。
A)先判断后执行B)单入口,单出口
C)程序中没有执行不到的语句D)无死循环
6、已知int a=3, b=5; 则表达式a && ! b 的值为(C)。
A)3 B)2 C)0 D)1
7、已知char a=‟R‟;则正确的赋值表达式是(A)。
A)a=(a++)%4 B)a+2=3 C)a+=256-- D)a=‟\078‟8、以下的语句中,无内嵌的if语句是(B)。
A)if(x= =y) x+=y;
B)if(x>y && x!=y);
x+=y;
C)if(x!=y)
scanf(“%d”,&x);
else
scanf(“%d”,&y);
D)if(x {x++;y++;} 9、设有整型变量x,下述语句(B)不会出现死循环。 A)for( ; ; x+=1) B)for( ; (x=getchar())!=‟\n‟; ) ; C)while(1) {x++ ;} D)for(x=10; ;x--) ; 10、下列数组声明中,正确的是(A)。 A)int a[5]={0}; B)int a[]={0 1 2}; C)int a[5]=0; D)int a[] ; 11、以下数组定义中,正确的是(D)。 A)int a[2][3]={1,2,3,4,5,6,7}; B)int a[][]={{1,2,3},{4,5,6},{7,8,9}}; C)int a[2][]={1,2,3,4,5,6}; D)int a[][4]={6}; 12、设有如下数组定义: char str[8]={“FuJian”}; 则分配给数组str的存储空间是(C)字节。 A)6 B)7 C)8 D)9 13、以下程序的运行结果是(A)。 int fun(int array[4][4]) {int j; for(j=0;j<4;j++) printf(“%2d”,array[2][j]); printf(“\n”); } main() {int a[4][4]={0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0}; fun(a); } A)2 0 0 5 B)1 0 0 4 C)0 1 2 0 D)0 4 5 0 14、若有以下宏定义, #define MOD(x,y) x%y 则执行以下程序段后,z的值是(D)。 int z,a=15,b=100; z=MOD(b,a); A)100 B)15 C)11 D)10 15、对于基类型相同的两个指针变量之间,不能进行的运算是(C)。 A)< B)= C)+ D)- 16、若函数fun的函数头为: int fun(int i,int j) 且函数指针变量p定义如下: int (*p)(int i,int j); 则要使指针p指向函数fun的赋值语句是(B)。 A)p=*fun(); B)p=fun; C)p=fun(i,j); D)p=&fun; 17、设有以下定义语句: struct student {int num; char name[10]; float score; }wang,zhang; 则不正确的叙述是(C)。 A)struct是结构体类型的关键字B)zhang是结构体变量名 C)wang是结构体类型名D)num,name,score都是结构体类型student 的成员名 18、若有以下定义: struct link {int data; struct link *next; }*head,*p; 并已建立如下图所示的链表结构: head 指针p指向如下结点: 则能够把p所指结点插入到链表中成为链表第2个结点的程序段是(A)。 A)p->next=head->next;head->next=p; B)head->next=p;p->next=head->next; C)p.next=head.next;head.next=p; D)(*head).next=p;(*p).next=(*head).next; 19、设有如下定义: typedef int *INTEGER; INTEGER p,*q; 则(C)是正确的叙述。 A)p是int型变量B)q是基类型为int的指针变量 C)p是基类型为int的指针变量D)程序中可用INTEGER代替int类型名20、以下程序的可执行文件名是file.exe。 main() int argc; char *argv[]; {int i; for(i=2;i printf(“%s%c”,argv[i],(i } 在DOS命令行输入:file My C Language and Programming<回车>,其输出结果是(A)。A)C Language and Programming B)My C Language and Programming C)MyCLanguageandProgramming D)file My C Language and Programming 21、在C语言源程序中,以下叙述正确的是(C)。 A)main函数必须位于文件的开头B)每行只能写一条语句 C)程序中的一个语句可以写成多行D)每个语句的最后必须有点号 22、下面关于算术运算符的叙述,错误的是(A)。 A)其运算对象不包含函数 B)%(模运算符)的运算对象只能为整型量 C)算术运算符的结合方向是“自左至右” D)自加和自减运算符的结合方向是“自右至左” 23、下面叙述中,(A)不是结构化程序设计中的三种基本结构之一。 A)数据结构B)选择结构C)循环结构D)顺序结构 24、已知double a=5.2; 则正确的赋值表达式是(A)。 A)a+=a-=(a=4)*(a=3) B)a=a*3=2 C)a%3 D)a=double(-3) 25、逻辑运算符的优先级依次为(C)。 A)|| && ! B)&& || ! C)! && || D)! || && 26、对于整型变量x,与while(!x) 等价的是(B)。 A)while(x!=0) B)while(x= =0) C)while(x!=1) D)while(~ x) 27、下列数组声明中,正确的是(A)。 A)int a[10]; B)int n=10,a[n]; C)int N=10;int a[N]; D)int n;scanf(“%d”,&n);int a[n];