请选出可用作C语言用户标识符的一组标识符______。 ① void ② a3_b3 ③ For ④ 2a define _123 _abc DO WORD IF case sizeof
(A)①(B)②(C)③(D)④ 答案:B
第2题 (1分)以下选项中可作为C语言合法整数的是______。 (A)10110B (B)0386 (C)0Xffa (D)x2a2 答案:C 第3题 (1分)有以下程序 main()
{ int a; char c=10; float f=100.0; double x;
a=f/=c*=(x=6.5);
printf(\"%d %d %3.1f %3.1f\\n\
}程序运行后的输出结果是______。
(A)1 65 1 6.5 (B)1 65 1.5 6.5 (C)1 65 1.0 6.5 (D)2 65 1.5 6.5 答案:B
第4题 (1分)下面程序的输出结果是( )。 #include void main() { int m=5;
if(m++>5) printf(\"%d \\n\ else printf(\"%d\\n\ }
(A)7 (B)6 (C)5 (D)4 答案:B
第5题 (1分)若以下选项中的变量已正确定义,则正确的赋值语句是______。 (A)x1=26.8%3; (B)1+2=x2; (C)x3=0x12; (D)x4=1+2=3; 答案:C
第6题 (1分)X、Y、Z被定义为int型变量,若从键盘给X、Y、Z输入数据,正确的输入语句是______。
(A)INPUT X,Y,Z;(B)scanf(\"%d%d%d\,&Z); (C)scanf(\"%d%d%d\,Z);(D)read(\"%d%d%d\,&Z); 答案:B 第7题 (1分)设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是______。 (A)printf(\"x=%d\\n\ (B)printf(\"x=%ld\\n\
(C)printf(\"x=%8dL\\n\ (D)printf(\"x=%LD\\n\ 答案:B 第8题 (1分)
表达式:10!=9的值是______。
(A)true (B)非零值 (C)0 (D)1 答案:D
第9题 (1分)
若a、b、c1、c2、x、y均是整型变量,正确的switch语句是______。 ①switch(a+b);
{ case 1:y=a+b;break; case 0:y=a-b;break; }
②switch(a*a+b*b)
{ case 3:
case 1:y=a+b;break; case 3:y=b-a;break; } ③
switch a
{ case c1:y=a-b;break; case c2:x=a*b;break; default:x=a+b; } ④ switch (a-b)
{ default:y=a*b;break; case 3:case 4:x=a+b;break; case 10:case 11:y=a-b;break; }
(A)① (B)② (C)③ (D) ④ 答案:D
第10题 (1分)若i为整型变量,则以下循环执行次数是( ). for(i=3;i>0;)
printf(\"%d\
(A)无限次 (B)3次 (C)1次 (D)2次答案:B 第11题 (1分)执行下面程序片段的结果是( ). int x=23;
do { printf(\"%2d\ } while(!x);
(A)打印出321(B)打印出23(C)不打印任何内容(D)陷入死循环 答案:B
第12题 (1分)
int a[10];给数组a的所有元素分别赋值为1、2、3、……的语句是()。 (A)for(i=1;I (B)for(i=1;i (C)for(i=1;I (D)for(i=1;i 答案:B
第13题 (1分)以下对二维数组a的正确说明是()。 (A)int a[3][] (B)float a(3,4)
(C)double a[1][4] (D)float a(3)(4) 答案:C 第14题 (1分)
下列数组说明中,正确的是()。 (A)static char str[]=\"China\";
(B)static char str[]; str=\"China\";
(C)static char str1[5],str2[]={\"China\
(D)static char str1[],str2[];str2={\"China\ 答案:A
第15题 (1分)若有double *p,x[10];int i=5;使指针变量p指向元素x[5]的语句为()。 (A)p=&x[i]; (B)p=x; (C)p=x[i]; (D)p=&(x+i) 答案:A
第16题 (1分)若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5 的语句为()。
(A)printf(\"%d\
(C)printf(\"%d\答案:D
第17题 设有以下语句,其中不是对a数组元素的正确引用的是:______(其中0≤i<10) int a[10]={0,1,2,3,4,5,6,7,8,9,},*p=a;
(A)a[p-a] (B)*(&a[i]) (C)p[i] (D)*(*(a+i) ) 答案:D 第18题 (1分)有以下程序段
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; b中的值是
(A)5 (B)6 (C)8 (D)9 答案:D 第19题 (1分)有以下定义 #include
char a[10],*b=a;
不能给数组a输入字符串的语句是
(A)gets(a) (B)gets(a[0]) (C)gets(&a[0]) (D)gets(b) 答案:B 第20题 (1分)
若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。 (A)函数调用可以作为的语句存在 (B)函数调用可以作为一个函数的实参 (C)函数调用可以出现在表达式中 (D)函数调用可以作为一个函数的形参 答案:D
第21题 (1分) 有以下程序 #include int f(int x) { int y;
if(x==0||x==1) return (3); y=x*x-f(x-2); return y; }
main()
{ int z;
z=f(3);printf(\"%d\\n\
} 程序的运行结果是( ) 。
(A)0 (B)6 (C)8 (D)9 答案:B 第22题 (1分)
在C语言中,调用函数除函数名外,还必须有()。
(A)函数预说明 (B)实际参数 (C)( ) (D)函数返回值 答案:C 第23题 (1分)
以下函数调用语句中实参的个数是()。
exce((v1,v2),(v3,v4,v5),v6);
(A)3 (B)4 (C)5 (D)6 答案:A 第24题 (1分)有以下程序 # include int f(int n);
main()
{ int a=3,s;
s=f(a);s=s+f(a);printf(\"%d\\n\ int f(int n) { static int a=1; n+=a++; return n;
} 程序运行后的输出结果是( )。
(A)7 (B)8 (C)9 (D)10 答案:C 第25题 (1分)C语言规定,函数返回值的类型是由()。
(A)return语句中的表达式类型所决定(B)调用该函数时的主调函数类型所决定 (C)调用该函数时系统临时决定 (D)在定义该函数时所指定的函数类型所决定 答案:D
第26题 (1分)
C程序中的宏展开是在()。
(A)编译时进行的(B)程序执行时进行的 (C)编译前预处理时进行的(D)编辑时进行的 答案:C
第27题 (1分)有以下程序 #include main()
{ struct STU { char name[9]; char sex; double score[2]; }; struct STU a={\"Zhao\ b=a;
printf(\"%s,%c,%2.0f,%2.0f\\n\ }
程序的运行结果是( ) 。
(A)Qian,f,95,92(B)Qian,m,85,90
(C)Zhao,f,95,92(D)Zhao,m,85,90答案:D 第28题 (1分)
fwrite函数的一般调用形式是()。 (A)fwrite(buffer,count,size,fp); (B)fwrite(buffer,size,count,fp); (C)fwrite(fp,count,size,buffer); (D)fwrite(fp,size,count,buffer); 答案:B
二、多项选择 共4题 (共计12分) 第1题 (3分)
下面程序的输出结果是( ) . #include void main() { int x=9; for( ;x>0; ) { if(x%3==0)
{printf(\"%d\
continue; } x--; }}
(A)852(B)843(C)952(D)963 答案:A 第2题 (3分)以下程序的输出结果是( ). #include void main() { int i=0,a=0; while(i<20) { for(;;) { if((i%10)==0) break; else i--; }
i+=11; a+=i; }
printf(\"%d\\n\
} (A)32 (B)31(C)21(D)12 答案:A 第3题 (3分)
以下程序的输出结果为()。 main()
{int a=1,b=2,c=3,d=4,e=5;
printf(\"%d\\n\}
int func(int x,int y) {
return(x+y); }
(A)13(B)15(C)9(D)函数调用出错答案:A 第4题 (3分) 有如下程序 #include
main()
{ char s[]=\"ABCD\for(p=s+1; p
该程序的输出结果是 (A) ABCD BCD CD D
(B) A B C D (C) B C D (D) BCD CD D
答案:D
三、程序填空 共2题 (共计20分)
第1题 (10分)
【程序填空】功能:找出数组中最大值和此元素的下标,数组元素的值由键盘 输入。
#include \"stdio.h\" void main()
{int a[10],*p,*s,i; for(i=0;i<10;i++)
/***********SPACE***********/ scanf(\"%d\【?】);
/***********SPACE***********/ for(p=a,s=a;【?】<10;p++) /***********SPACE***********/ if(*p【?】*s) s=p;
/***********SPACE***********/ printf(\"max=%d,index=%d\\n\【?】,s-a); }
答案:1). a★+★i 或 &a[i] 2). p-a 或 -a+p 3). > 4). *s 第2题 (10分) 【程序填空】
功能:将一个数组中的元素按逆序存放。 #define N 7 main ()
{ static int a[N]={12,9,16,5,7,2,1},k,s; printf(\"\\n the origanal array:\\n\"); for (k=0;k for (k=0;k { s=a[k]; /***********SPACE***********/ 【?】 ; /***********SPACE***********/ 【?】 ; } printf(\"\\n the changed array:\\n\"); for (k=0;k } 答案:1). k++ 或 k=★k★+★1 或 k+=1 或 ++k 2). a[k]=a[N-k-1] 或 a[k]=a[N-1-k] 或 a[k]=a[6-k] 或 *(a+k)=*(a+N-k-1) 或 *(a+k)=*(a+N-1-k] 或 a[k]=a[-1+N-k] 或 a[k]=a[-1-k+N] 或 a[k]=a[-k-1+N] 或 a[k]=a[-k+N-1] 或 *(a+k)=*(a+N-k-1) 或 a[6-k]=s 3). a[N-k-1]=s 或 a[N-1-k]=s 或 a[6-k]=s 或 a[N★-k★-1]=s 或 *(a★+N★-k★-1)=s 4). printf 四、程序改错 共2题 (共计20分) 第1题 (10分) 【程序改错】 功能:求1到10的阶乘的和。 main() { int i; float t,s=0; float fac(int n); /**********FOUND**********/ for(i=1;i<10;i++) /**********FOUND****** ****/ s=fac(i); printf(\"%f\\n\} float fac(int n) { /**********FOUND**********/ int y=1; int i; for(i=1 ;i<=n;i++) y=y*i; /**********FOUND**********/ return; } 答案:1). for(i=1;i<=10;i++) 或 for(i=1;10>=i;i++) 或 for(i=1;ii;i++) 2). s=★s★+★fac(i)★; 或 s+=fac(i); 或 s=fac(i)+s; 3). float y=1.0; 或 float y=1; 4). return y; 或 return(y); 或 return (y); 第2题 (10分)【程序改错】功能:分别统计输入的字符串中各元音字母(即:A、E、I、O、U)的个数。 注意:字母不分大、小写。 例如:若输入:THIs is a boot,则输出应该是:1、0、2、2、0。 #include #include fun ( char *s, int num[5] ) { int k, i=5; for ( k = 0; k /**********FOUND**********/ num[i]=0; for (; *s; s++) { i = -1; /**********FOUND**********/ switch ( s ) { case 'a': case 'A': { i=0; break; } case 'e': case 'E': { i=1; break; } case 'i': case 'I': { i=2; break; } case 'o': case 'O': { i=3; break; } case 'u': case 'U': { i=4; break; }} /**********FOUND**********/ if (i < 0) num[i]++; }} main( ) { char s1[81]; int num1[5], i; printf( \"\\nPlease enter a string: \" ); gets( s1 ); fun ( s1, num1 ); for ( i=0; i < 5; i++ ) printf (\"%d \printf (\"\\n\"); } 答案:1). num[k]=0; 2). switch(*s) 3). if (i >= 0) 五、程序设计 共2题 (共计20分) 第1题 (10分)【程序设计】功能:产生20个[30,120]上的随机整数放入二维数组 a[5][4]中, 求其中的最小值。 #include \"stdlib.h\" #include \"stdio.h\" int amin(int a[5][4]) {/**********Program**********/ /********** End **********/ } main() { int a[5][4],i,j; for(i=0;i<5;i++) for(j=0;j<4;j++) a[i][j]=rand()%(120-30+1)+30; for(i=0;i<5;i++) { for(j=0;j<4;j++) printf(\"%5d\printf(\"\\n\"); } printf(\"min=%d\\n\ } 第2题 (10分)【程序设计】功能:求一个任意位数的各位数字的立方和 #include \"stdio.h\" int fun(int n) {/**********Program**********/ /********** End **********/ } main() { int k; k=fun(1234); printf(\"k=%d\\n\yzj(); } 答案: int d,k,s=0; while (n>0) {d=n%10; s+=d*d*d; n/=10; } return s; 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务