|
(26)以下描述中正确的是 A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句 B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号 C)在do-while循环体中,是先执行一次循环,再进行判断 D)do-while循环中,根据情况可以省略while (27)以下函数返回a所指数组中最小的值所在的下标值 fun(int *a, int n) { int i,j=0,p; p=j; for(i=j;i if(a[i] return(p);} 在下划线处应填入的是 A)i=p B)a[p]=a[i] C)p=j D)p=I (28)以下叙述正确的是 A)函数可以嵌套定义但不能嵌套调用 B)函数既可以嵌套调用也可以嵌套定义 C)函数既不可以嵌套定义也不可以嵌套调用 D)函数可以嵌套调用但不可以嵌套定义 (29)若有说明语句 char a[]="It is mine"; char *p="It is mine"; 则以下不正确的叙述是 A)a+1表示的是字符t的地址 B)p指向另外的字符串时,字符串的长度不受限制 C)p变量中存放的地址值可以改变 D)a中只能存放10个字符 (30)以下程序的运行结果是 sub(int x,int y,int *z) {*z=y-x;} main() { int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf("M,M,M\n",a,b,c);} A)5,2,3 B)-5,-12,-7 C)-5,-12,-17 D)5,-2,-7 (31)若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为 (假设a[0][0]位于数组的第一个位置上) A)i*m+j B)j*m+i C)i*m+j-1 D)i*m+j+1 (32)下列说法正确的是 int i,x; for(i=0,x=0;i<=9 &&x!=876;i++)scanf("%d",x); A)最多的执行10次 B)最多执行9次 C)是无限循环 D)循环体一次也不执行 (33)若有下面的程序片段: int[12]={0},*p[3],**pp,i; for(i=0;i<3;i) p[i]=&a[i*4]; pp=p; 则对数组元素的错误引用是 A)pp[0][1] B)a[10] C)p[3][1] D)*(*(p+2)+2) (34)若有说明:int a[3][4]={0};则下面正确的叙述是 A)只有元素a[0][0]可得到初值0 B)此说明语句不正确 C)数组a中各元素都可得到初值,但其值不一定为0 D)数组a中每个元素均可得到初值0 (35)对下面程序描述正确的一项是 (每行程序前面的数字表示行号) 1 main() 2 { 3 float a[3]={0.0}; 4 int i; 5 for(i=0;i<3;i++)scanf("%d",&a[i]); 6 for(i=1;i<3;i++)a[0]=a[0]+a[i]; 7 printf("%f\n",a[0]); 8 } A)没有错误 B)第3行有错误 C)第5行有错误 D)第7行有错误 (36)以下不正确的说法是 C语言规定: A)实参可以是常量,变量或表达式 B)形参可以是常量,变量或表达式 C)实参可以为任何类型 D)形参应与其对应的实参类型一致 (37)已有如下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的正确定义方式为 int a[3][4]; f(a); A)f(array[3][4]) B)f(int array[3][]) C)f(int array[][4]) D)f(int array[][]) (38)下面程序的输出结果为 main() { int a,b;b=(a=3*5,a*4,a*5); printf("%d",b);} A)60 B)75 C)65 D)无确定值 (39)在位运算中,操作数右移一位,其结果相当于 A)操作数乘以2 B)操作数除以2 C)操作数乘以4 D)操作数除以4 (40)有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是 struct node { char data; struct node *next; } a,b,*p=&a,*q=&b; A)a.next=q; B)p.next=&b; C)p->next=&b; D)(*p).next=q; (41)下面程序的输出结果是 struct st { int x; int *y; } *p; int dt[4]={10,20,30,40}; struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]}; main() { p=aa; printf("%d\n",++p->x); printf("%d\n",(++p)->x); printf("%d\n",++(*p->y));} A)10 20 20 B)50 60 21 C)51 60 21 D)60 70 31 (42)下面程序的输出结果是 #include #include main() {char *p1="abc",*p2="ABC",str[50]= "xyz"; strcpy(str+2,strcat(p1,p2)); printf("%s\n",str);} A)xyzabcABC B)zabcABC C)xyabcABC D)yzabcABC (43)以下程序的输出结果是 long fun( int n) { long s; if(n==1||n==2)s=2; else s=n-fun(n-1); return s;} main() { printf("%ld\n", fun(3)); } A)1 B)2 C)3 D)4 (44)以下所列的各函数首部中,正确的是 A)void play(var :Integer,var b:Integer) B)void play(int a,b) C)void play(int a,int b) D)Sub play(a as integer,b as integer) (45)不合法的main函数命令行参数表示形式是 A)main(int a,char *c[]) B)main(int arc,char **arv) C)main(int argc,char *argv) D)main(int argv,char *argc[]) (46)有如下程序 main() {char ch[2][5]={"6937","8254"},*p[2]; int i,j,s=0; for(i=0;i<2;i++)p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>′\0′;j+=2) s=10*s+p[i][j]-′0′; printf("%d\n",s);} 该程序的输出结果是 A)69825 B)63825 C)6385 D)693825 (47)以下程序的输出结果是 union myun {struct { int x, y, z; } u; int k;} a; main() {a.u.x=4; a.u.y=5; a.u.z=6; a.k=0; printf("%d\n",a.u.x);} A)4 B)5 C)6 D)0 (48)以下程序的输出结果是 main() { char x=040; printf("%o\n",x<<1);} A)100 B)80 C)64 D)32 (49)C 语言中,系统的标准输入文件是指 A)键盘 B)显示器 C)软盘 D)硬盘 (50)下面的程序执行后,文件test中的内容是 #include void fun(char *fname,char *st) { FILE *myf; int i; myf=fopen(fname,"w" ); for(i=0;i fclose(myf);} main() { fun("test","new world"); fun("test","hello,");} A)hello, B)new worldhello, C)new world D)hello, rld
共4页: 上一页 [1] 2 [3] [4] 下一页
|