您好,欢迎来到飒榕旅游知识分享网。
搜索
您的当前位置:首页题库5

题库5

来源:飒榕旅游知识分享网
第1题 (1分)

请选出可用作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/***********SPACE***********/

for (k=0;k

{

s=a[k];

/***********SPACE***********/ 【?】 ;

/***********SPACE***********/ 【?】 ;

}

printf(\"\\n the changed array:\\n\"); for (k=0;k/***********SPACE***********/ 【?】 (\"%4d\

}

答案: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

本站由北京市万商天勤律师事务所王兴未律师提供法律服务