1.若有以下定义“int a,b,*p; float c,*q;”,则赋值正确的是()。
A:q=p B:p=&c C:p=NULL D:q=new int
答案:p=NULL
2.C语言中的标识符只能由字母,数字和下划线三种字符组成, 且第一个字符()。
A:必须为字母 B:必须为字母或下划线 C:必须为下划线 D:可以是字母,数字和下划线中任一字符
答案:必须为字母或下划线
3.若变量已正确定义并且指针p已经指向某个变量x,则(*p)++相当于().
A:&x++ B:p++ C:*(p++) D:x++
答案:x++
4.C语言中,关系表达式和逻辑表达式的值是().
A:0 B:0或1 C:1 D:T或F
答案:0或1
5.在一个单链表head中,若要删除指针p所指结点的后继结点,则执行()。
A:p->next=p->next->next; free(p); B:q=p->next; p->next=q->next; free(q); C:p=p->next;free(p); D:q= p->next q->next=p->next; free(q);
答案:p-next=p-next-next
6.有以下程序: main() { int m=0256, n=256; printf("%o %o\n", m, n);}运行程序后的输出结果是( )。
A:0256 256 B:400 400 C:0256 0400 D:256 400
答案:256 400
7.设有如下程序char ch1=A',ch2=’a’;printf("%c\n”,(ch1, ch2));则以下叙述中正确的是( )。
A:程序的输出结果为小写字母a B:格式说明符的个数少于输出项的个数,编译出错 C:程序的输出结果为大写字母A D:运行时产生错误信息
答案:程序的输出结果为小写字母a
8.有以下程序main(){int y=5;while(y!=0);printf(“y=%d”,y);}程序执行后的输出结果是(   )
A:while构成无限循环 B:y=1 C:y=0 D:y=-1
答案:while构成无限循环
9.以下关于switch语句和break语句的描述中正确的是( )
A:break语句只能用于switch语句体中 B:在switch语句中可以不使用break语句 C:在switch语句中必须使用break语句 D:break语句只能用于循环语句中
答案:在switch语句中可以不使用break语句
10.有语句int a=5678;printf(“%3d\n”,a);程序执行后的输出结果是( )。
A:56 B:567 C:5678 D:678
答案:5678
11.有以下程序:main(){ float y=3.667; printf(“*%f*\n”,y); printf(“*%7.2f*\n”,y); }程序运行的结果是:( )。
A:*3.667* *3.667000* B:*3.667000**3.667 * C:*3.667000* * 3.67* D:*3.667000* *3.67*

12.下面的这个循环的循环次数是( )。 int i,j;for( i=0,j=10; i=j=10; i++,j--)
A:10 B:语法错误,不能执行 C:无限次 D:1 13.以下关于循环语句的说法正确的是()。
A:用do-while语句构成的循环,在while后的表达式为非零时结束循环 B:用do-while语句构成的循环,在while后的表达式为零时结束循环 C:do-while语句构成的循环不能用其他语句构成的循环来代替 D:do-while语句构成的循环只能用break语句退出 14.有说明语句int a[4][5];,则a[2]+3表示()。
A:a数组行下标为2、列下标为3的元素的值 B:a数组第3行的首地址 C:a数组行下标为2、列下标为3的元素的地址 D:a数组第2行的首地址 15.下列程序段的输出结果是()。int main(void) { for(int i = 1; i < 6; i ++) { if( i % 2 != 0) { printf("#"); continue; } printf("*"); } printf("\n"); return 0;}
A:*#*#* B:##### C:***** D:#*#*# 16.以下对二维数组a的正确说明是( ).
A:int a[3][ ]; B:float a(3,4); C:float a(3)(4); D:float a[3][4]; 17.分析以下程序,下列说法正确的是()main(){int x=0,a=0,b=0;if(x==a+b) printf("****\n");else printf("####\n");}
A:输出#### B:输出**** C:通过编译,但不能连接 D:有语法错,不能通过编译 18.数组定义为 int a[3][2]={1, 2, 3, 4, 5, 6},数组元素()的值为6。
A:a[3][2] B:a[2][1] C:a[2][3] D:a[1][2] 19.下面程序运行后的输出结果是()。#include “stdio.h”int main() {    printf("%d", NULL);    return 0;}
A:1 B:NULL没定义,出错 C:-1 D:0 20.根据声明int (*p)[10], p是一个( )。
A:数组的元素 B:函数 C:数组 D:指针 21.在int a[ ][3] = { {1,4}, {3,2}, {4,5,6}, {0} };中,a[2][1]的值是( )。
A:6 B:5 C:0 D:2 22.以下能对二维数组a进行正确初始化的语句是( )
A:int a[2][ ]={{1,0,1},{5,2,3}}; B:int a[2][4]= {1,2,3},{4,5},{6}}; C:int a[ ][3]={{1,0,1,0},{ },{1,1}}; D:int a[ ][3]={{1,2,3},{4,5,6}}; 23.有以下程序main(){int c=0,k;for(k=1;k<3;k++)switch(k){case  1:c=c+1;break;case  2:c=c+2;break;default:c=c+3;}printf(“%d”,c);}程序运行后的输出结果是(  )
A:12 B:3 C:2 D:9 24.下列程序的输出结果是( )。 int f(int n) {   static int k, s;  n--;  for(k=n; k>0; k--)  s += k;    return s; } int main(void) {   int k;  k=f(3);  printf("(%d,%d)", k, f(k));  return 0; }
A:(6,6) B:(3,6) C:(3,3) D:(6,12) 25.若有定义:int *p[3]; 则以下叙述中正确的是( )。
A:定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 B:定义了一个基类型为int的指针变量p,该变量具有三个指针 C:定义了一个名为*p的整型数组,该数组含有三个int类型元素 D:定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素 26.判断 i 和 j 至少有一个值为非0的表达式是().
A:i || j B:i+j!=0 C:i&&j D:i!=0 && j!=0 27.已知各变量的类型说明如下:int a=2, b=5; double y=8.5; 则以下符合C语言语法的表达式是( )。
A:b/3=8 B:y=float (a) C:y%3 D:a+=a-=(b=2) 28.判断字符串a和b是否相等,应当使用().
A:if (strcmp(a,b)==0) B:if (a==b) C:if (a=b) D:if (strcpy(a,b)) 29.如果有如下定义:int a[3][4]={{1,2,3,4}, {5,6,7,8},{9,10,11,12}};,那么a[2][2]元素的结果是()
A:9 B:12 C:11 D:10 30.下列四组选项中,均不是C语言关键字的选项是()。
A:while, go, pow B:Define, IF, type C:include, scanf, case D:getc, Char, printf 31.若有说明:int a[3]; ,则下面数组元素的赋值中,正确的是( ).
A:a[1]=4; B:a[0]=5; C:a[2]=9; D:a[3]=6; 32.下列选项中,合法的C语言关键字是()。
A:VAR B:default C:char D:integer 33.以下合法的C语言实型常量是( )。
A:8e5 B:e3 C:12e-4 D:.60 34.设有定义“int k = 0;”,下列选项的4个表达式中值相同的是( )。
A:++k B:k++ C:k+=1 D:k+1 35.下面是对数组s的初始化,其中正确的语句是( ).
A:char s[5]=" "; B:char s[5]= "abcdef"; C:char s[5]={'a','b','c'}; D:char s[5]= {"abc"}; 36.根据声明int a[10], *p=a; ,下列表达式正确的是( )。
A:p[5] B:a[9] C:*p++ D:a++ 37.以下对一维数组的定义中正确的是()。
A:char ch2[ ]={'\x10', '\xa', '\x8'}; B:char ch1[ ]={'1', '2', '3', '4', '5'}; C:int y[3]={3,5,7,9}; D:float x[5]={6.5,4.0,6.4,8.66,10.0}; 38.共用体变量的地址和它的各成员的地址相同。
A:错 B:对 39.不同结构体中的成员可以同名,结构体定义要以分号结尾。
A:错 B:对 40.可以用输入语句把字符串整体输入给字符数组。
A:对 B:错 41.语句int a[3]=1; 可以给数组a的第一个元素赋值。
A:错 B:对 42.不可以用赋值语句给字符数组名赋字符串。
A:错 B:对 43.字符数组只能存放字符串。
A:错 B:对 44.设有以下语句:typedef struct S{int g;char h;}T;则可以用S定义结构体变量。
A:错 B:对 45.结构体中的成员名不能和程序中的其他变量同名。
A:错 B:对 46.执行表达式a=b后,在内存中a和b存储单元中的原值都将被改变,a的值已由原来的改变为b的值,b的值由原来改变为0。
A:对 B:错 47.若有(float)x,则x变成float型变量。
A:错 B:对 48.以下( )函数的定义是正确的?
A:void f(int i) { return i+1; } B:void f( ) { } C:void f(int i) { } D:int f( ) { return 0; }

温馨提示支付 ¥3.00 元后可查看付费内容,请先翻页预览!
点赞(8) dxwkbang
返回
顶部