您的当前位置:首页正文

湖南科技大学c语言期末试题库

2024-08-17 来源:易榕旅网
选择题(共 题),成绩()

一、

C语言所提供的根本数据类型包括字符型、整

型、双精度型、单精度型和____: A) 指针型 B) 构造型 C) 数组型 D) 列举类型 正确答案是: D 二、

下面四个选项中,均是合法浮点数的选项是:

A) 1e+1 5e-9.4 03e2 B) -.60 12e-4 -8e5 C) 123e 1.2e-.4 e-4 D) -e3 e-4 5.e-0 正确答案是: B

3、 以下符合C语言语法的表达式: A) d=9+e+f=d+9 B) d=9+e,f=d+9 C) d=9+e=e++,d+9 D) d=9+e++=d+7 正确答案是: B

4、 假设有定义int a=12,那么表达式a+=a-=a*=a的值是:

A) 0 B) -264 C) -144 D) 132 正确答案是: A 五、

下面程序的输出结果是:

#include void main() {

int a,b,c; int d;

b=(a=32767, a++); c=d=0xffff;

printf(\"%x,%d,%d,%d\\n\ } A)

8000,32767,65535,65535

B)

-1,-1,32767,8000

C) -1,-1,-1,-1 D) 32767,-1,-1,-1 正确答案是: A

六、 有double型变量x=2.5,y=4.7,整型变量a=7,那么表达式 x+a%3*(int)(x+y)%2/4 的值是:

C) 2.75 D) 0 正确答案是: B

7、 设 int a=12,那么执行完语句a+=a-=a*a后,a的值是

A) 552 B) 264 C) 144 D) -264

正确答案是: D 八、

表达式: 10!=9的值是

A) true B) 非零值 C) 0 D) 1

正确答案是: D 九、

在以下选项中,不正确的赋值语句是

A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 正确答案是: D 10、

设a,b和c都是int型变量,且a=3,b=4,c=5,

那么下面的表达式中, 值为0的表达式是

A) 'a'&&'b' B) a<=b

C) a||b+c&&b-c D) !((a正确答案是: D

1一、 能正确表示a和b同时为正或同时为负的逻辑表达式是

A) (a>=0 || b>=0) && (a<0 || b<0) B) (a>=0 && b>=0) && (a<0 && b<0) C) (a+b>0 && a+b<=0) D) a*b>0

正确答案是: D

1二、 运行下面程序后,输出是( )。 #include void main( ) { int k=-3;

if (k<=0) printf(\"****\\n\"); else printf(\"####\\n\") }

A) #### B) ****

C) ####**** D) 有语法错误不能通过编译 正确答案是: D 13、

下面程序的输出结果是

#include void main( ) { int a=2,b=7,c=5; switch(a>0)

{ case 1:switch(b<0)

{ case 1: printf(\"@\"); break; case 0: printf(\"!\"); break; }

case 0:switch(c==5)

{ case 0: printf(\"*\"); break; case 1: printf(\"#\"); break;

default: printf(\"%%\");break; }

default: printf(\"&\"); } printf(\"\\n\"); }

A) & B) !#& C) %% D) @*& 正确答案是: B 14、 运行下面程序时,假设从键盘输入数据为

\"123\",

那么输出结果是( )。 #include \"stdio.h\" void main()

{ int num,i,j,k,place; scanf(\"%d\ if (num>99) place=3; else if(num>9) place=2; else place=1; i=num/100; j=(num-i*100)/10; k=(num-i*100-j*10); switch (place)

{ case 3: printf(\"%d%d%d\\n\ break;

case 2: printf(\"%d%d\\n\ break;

case 1: printf(\"%d\\n\ }

}

A) 123 B) 1,2,3 C) 321 D) 3,2,1 正确答案是: C

1五、 以下程序的输出结果是 #include void main( ) {int a=-1,b=4,k; k=(++a<0) && !(b--<=0); printf(\"%d,%d,%d\\n\ }

A) 1,0,4 B) 1,0,3 C) 0,0,3 D) 0,0,4 正确答案是: D

1六、 执行以下程序,分别输入-10和5,运行的结果分别是( )。 #include void main( ) { int x,c,m; float y; scanf(\"%d\ if (x<0) c=-1; else c=x/10; switch (c)

{ case -1: y=0; break; case 0: y=x; break; case 1: y=10; break; case 2:

case 3: y=-0.5*x+20; break; default: y=-2; }

if (y!=-2) printf(\"y=%d\\n\

else printf(\"error\\n\"); }

A) y=0 B) y=0 y=5 y=-2 C) y=-10 D) y=0 y=5 y=10 正确答案是: A 17、

执行下面程序时,假设从键盘输入\"2\",

那么程序的 运行结果是( )。 #include void main( ) { int k; char cp; cp=getchar( );

if (cp>='0' && cp<='9') k=cp-'0';

else if (cp>='a' && cp<='f') k=cp-'a'+10; else k=cp-'A'+10; printf(\"%d\\n\ }

A) 2 B) 4 C) 1 D) 10 正确答案是: A

1八、 以下程序执行后的输出结果是( )。 #include void main( ) { int a=358; if (a>=100) {if (a>=1000)

printf(\"%d is greater than 10000\\n\

else printf(\"%d is 100 to 999\\n\ } else {if (a<10)

printf(\"%d is less than 10\\n\ printf(\"%d\ A) 无穷次 B) 0次 C) 1次 D) 2次 正确答案是: B

2二、 下面程序的输出结果是( )。 else printf(\"%d is 10 to 99\\n\ } }

A) a is less than 10 B) a is 10 to 99

C) a is greater than 10000 D) 358 is 100 to 999正确答案是: D

1九、 以下表达正确的选项是

A) do-while语句组成的循环不能用其它语句组成的循环来代替

B) do-while语句组成的循环只能用break语句退出 C) 用do-while语句组成的循环,在while后的表达式为非零时终止循环

D) 用do-while语句组成的循环,在while后的表达式为零时终止循环 正确答案是: D 20、

设i,j,k均为int型变量,那么执行完下面的

for循环后,k的值为

for(i=0,j=10;i<=j;i++,j--) k=i+j; A) 12 B) 10 C) 11 D) 9 正确答案是: B

2一、 假设i为整型变量,那么以下循环语句的循环次数是( )。 for(i=2;i==0;)

#include void main( )

{ unsigned int num,k; num=26;k=1; do {

k*=num%10; num/=10; } while(num); printf(\"%d\\n\ }

A) 2 B) 12 C) 60 D) 18 正确答案是: B 23、

下面程序的输出结果是( )#include void main( ) { int x,i;

for(i=1;i<=50;i++) { x=i;

if (++x%2==0) if (x%3==0) if (x%7==0) printf(\"%d\ } }

A) 28 B) 27 C) 42 D) 41 正确答案是: D 24、

下面程序的输出结果是( )。

#include void main() { int x=3,y=6,a=0; while(x++!=(y-=1)) {a+=1;

if(yprintf(\"x=%d,y=%d,a=%d\\n\ }

A) x=4,y=4,a=1 B) x=5,y=5,a=1 C) x=5,y=4,a=3 D) x=5,y=4,a=1 正确答案是: D

2五、 当从键盘上输入字符“12134211〞下面程序的

输出结果是( )。 #include void main() { char s;

int v1=0,v2=0,v3=0,v4=0,k; for(k=0;k<=7;k++) { scanf(\"%c\ switch(s) { default: v4++; case '1': v1++; case '3': v3++; case '2': v2++; } }

printf(\"v1=%d,v2=%d,v3=%d,v4=%d\\n\); } A)

v1=4,v2=2,v3=1,v4=1

B)

v1=4,v2=9,v3=3,v4=1 C)

v1=5,v2=8,v3=6,v4=1

D)

v1=8,v2=8,v3=8,v4=8 正确答案是: C

2六、 下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。 #include void main() { int a,b,c,i; a=c=0;

for(i=0;i<=10;i+=2) { a+=i; ______; c+=b; }

printf(\"偶数之和=%d\\n\ printf(\"奇数之和=%d\\n\ }

A) i+=2 B) i++ C) b=b+1 D) b=i+1 正确答案是: D 27、 运行以下程序后,如果从键盘上输入12,8<

回车>,

那么输出结果为( )。 #include void main( )

{ int a,b,n1,n2,t; scanf(\"%d,%d\ if (n1>n2)

{ t=n1;n1=n2;n2=t;} a=n1;b=n2; while (b!=0) { t=a%b; a=b; b=t; }

printf(\"%d,%d\\n\ }

A) 2,6 B) 4,24 C) 4,12 D) 8,96 正确答案是: B

2八、 有如下程序 #include void main() { char ch[80]; int j;long s=0;

printf(\"Enter a numeral string\\n\"); gets(ch); for(j=0;ch[j]>'\\0';j++) s=10*s+ch[j]-'0'; printf(\"%ld\\n\ }

假设是运行时,从键盘上输入由数字组成的字符串, 该程序的功能是________。 A) 测字符数组ch的长度

B) 将数字字符串ch转换成十进制数 C) 将字符数组中的小写字母转换成大写 D) 将字符数组中的大写字母转换成小写 正确答案是: B

2九、 有如下程序 #include void main()

{ char ch[80]=\"123abcdEFG*&\"; int j;long s=0;

for(j=0;ch[j]>'\\0';j++) ; printf(\"%d\\n\ }

该程序的功能是________。 A) 测字符数组ch的长度

B) 将数字字符串ch转换成十进制数 C) 将字符数组ch中的小写字母转换成大写 D) 将字符数组ch中的大写字母转换成小写 正确答案是: A 30、

以下程序的输出结果是________。

#include void main() {

int

a[4][4]={{1,2,3,4},{3,4,5,6},{5,6,7,8},{7,8,9,10}};

int i,j,s=0; for(i=0;i<4;i++) for(j=0;j<4;j++)

if(i==0 || j==0 || i==3 || j==3) s+=a[i][j];

printf(\"%d\\n\ }

A) 88 B) 66 C) 60 D) 50 正确答案是: B

3一、 设有以下定义语句 char

str1[]=\"string\\";

那么下面对函数strcpy的挪用中,错误的挪用是________。

(此函数用来复制字符串)

A) strcpy(str1,\"HELLO1\"); B) strcpy(str2,\"HELLO2\");

C) strcpy(str3,\"HELLO3\"); D) strcpy(str4,\"HELLO4\"); 正确答案是: C

3二、 阅读程序: #include void main()

{ char str1[]=\"how do you do\ scanf(\"%s\ printf(\"%s\ printf(\"%s\\n\ }

运行该程序,输入字符串HOW DO YOU DO,那么程序的输出结果是______。

A) HOW DO YOU DO B) HOWhow do you do C) How how do you do D) how do you do 正确答案是: B 33、

下面程序的输出是________。

#include void main()

{ char s[]=\"23245322\"; int v1=0,v2=0,v3=0,v4=0,k;

for(k=0;s[k];k++) switch(s[k]) {default: v4++; case '2': v1++; case '4': v3++; case '3': v2++; }

printf(\"v1=%d,v2=%d,v3=%d,v4=%d\\n\); } A)

v1=4,v2=2,v3=1,v4=1

B)

v1=4,v2=9,v3=3,v4=1 C)

v1=5,v2=8,v3=6,v4=1

D)

v1=8,v2=8,v3=8,v4=8 正确答案是: C 34、

以下程序执行后的输出结果是________ 。

〔设a[0][0] 是数组a中的第1个元素〕 #include void main( ) {

int

a[4][5]={1,2,4,8,10,-1,-2,-4,-8,-10,3,5,7,9,11};

int i,j,n=9; i=n/5; j=n-i*5-1; printf(\"NO.

%d:

%d

%d

is %d\\n\ }

A) 第n个元素所在的行和列及其该元素的值 B) 第n行的最大元素所在的行和列及其最大值 C) 第i行的最大元素所在的行和列及其最大值

D) 以上都不对 正确答案是: A

3五、 以下一组初始化语句中,正确的选项是________。

A) int a[8]={ }; B) int 正确答案是: C

3八、 函数fun的功能是:根据以下公式计算并返回S,n通过形参传入,n的值

大于等于0。划线处应填________。 1 1 1 1 a[9]={0,7,0,4,8};

C) int a[5]={9,5,7,4,0,2}; D) int a[7]=7*6; 正确答案是: B

3六、 假设有定义和语句:

char s[10];s=\"abcd\";printf(\"%s\\n\ 那么程序运行后________(以下u代表空格)。 A) 输出abcd B) 输出a C) 输出abcduuuuu D) 编译不通过 正确答案是: D 37、

函数fun的功能是:根据以下公式计算S,n通

过形参传入,n的值大

于等于0。划线处应填________。 1 1 1 1 S=1 - ─ + ─ - ─ + … ─── 3 5 7 2n-1 float fun(int n) { float s=0.0,w,f=-1.0; int i=0;

for(i=0;i<=n;i++) {________; w=f/(2*i+1); s+=w; } return s; } A) f=1 B) f=-1 C) f=-1*f D) f=0

S=1 - ─ + ─ - ─ + … ─── 3 5 7 2n-1 float fun(int n)

{ float s=0.0,w,t,f=-1.0; int i;

for(i=0;iA) return (f) B) return (i) C) return (s) D) return (w) 正确答案是: C

3九、 以下程序的输出结果是________。 #include void fun() { static int a=0; a+=2;

printf(\"%d\ void main() { int cc;

for(cc=1;cc<4;cc++) fun( ); printf(\"\\n\"); } A) 2222 B) 2468 C) 222 D) 246 正确答案是: D

40、 以下程序的输出结果是 #include void fun( char s[]) { int x,y; char c;

for(x=0,y=strlen(s)-1; x{ char a[]=\"123456789\"; int k; fun(a); puts(a); } A) 987654321 B) 123456789 C) 123454321 D) 987656789 正确答案是: A

4一、 以下程序执行后输出的结果是________。#include int f(int a) {int b=0 , c=3; a=c++,b++; return(a); } void main() {int a=2,i,k; for(i=0;i<3;i++) k=f(a++);

printf(\"%d\\n\ A) 3 B) 0 C) 5 D) 4 正确答案是: A

4二、 以下程序的输出结果是________。 #include \"ctype.h\" void space(char str[ ]) {int i,t; char ts[81];

for(i=0,t=0;str[i]!= '\\0';i+=2)

if(!isspace(str[i]) && str[i]!= 'a') ts[t++]=toupper(str[i]); ts[t]= '\\0'; strcpy(str,ts); } void main()

{char s[81]={ \"abcdefg\ space(s); puts(s);}

A) ABCDEFG B) CEG C) ABCDE D) BDF 正确答案是: B 43、

下面程序的功能是,将字符数组a中的字符

逆序存放,划线处应 填入________。 #include void main()

{ char a[80]= \"abcdefgh\"; fun(a); puts(a); } fun(char s[10]) { int x=0,y; char c; for(________;x以下程序的输出结果是________。

#include int a,b; void fun() { a=100; b=200; } void main()

{ int a=5,b=7; fun();

printf(\"%d%d\\n\ A) 100200 B) 57 C) 200100 D) 75 正确答案是: B

4五、 读以下程序,下面的说法中错误的选项是________。 #include pt( char string[ ]) { char str[10]; int i=0; strcpy(str,string); if(str[i]== '\\0') return; while(str[i]!= '\\0') i++; i--;

printf(\"%c\ str[i]='\\0'; pt(str); }

void main( ) {

char s[ ]={ \"Hello\ pt(s); }

A) 在函数pt( )中利用了递归挪用 B) 在函数pt( )中利用了嵌套挪用 C) 程序的功能是使字符串s按反序存放 D) 程序的功能是将字符串\"Hello\"按反序输出 正确答案是: B

选择题(共 题),成绩() 一、

a,b均为整数,且b!=0,那么表达式

a/b*b+a%b的值是:

A) a B) b

C) a被b除的整数部份 D) a被b除的商的整数部份

正确答案是: A 二、

假设有代数式(3ae)/(bc),那么下面不正确

的C语言表达式是:

A) a/b/c*e*3 B) 3*a*e/b/c C) 3*a*e/b*c D) a*e/c/b*3 正确答案是: C

3、 x=43,ch='A',y=0,

(x>=y&&ch<'B'&&!y)的值是: A) 0 B) 语法错 C) 1 D) \"假\" 正确答案是: C

4、 假设已定义x和y是整型变量,x=2;,那么表达式y=2.75+x/2的值是: A) 5.5 B) 5

正确答案是: C 五、

假设已定义

int a,那么表达式

a=10,a+10,a++的值是: A) 20 B) 10 C) 21 D) 11 正确答案是: B

六、 有double型变量x=2.5,y=4.7,整型变量a=7,那么表达式 x+a%3*(int)(x+y)%2/4 的值是:

C) 2.75 D) 0

正确答案是: B

7、 阅读下面的程序 #include void main() {

int i,j;

scanf(\"%2d %*3d %2d\ printf(\"%d%4d\ }

假设是从键盘上输入 12 345 67<回车> 那么程序的运行结果是:

A) 12 67 B) 12 345 C) 12345 D) 程序语法犯错 正确答案是: A 八、

C语言中最简单的数据类型包括

A) 整型,实型,逻辑型 B) 整型,实型,字符型

C) 整型,字符型,逻辑型 D) 整型,实型,逻辑型,字符型

正确答案是: B 九、

下面程序的输出是

#include void main() {int x=023;

printf(\"%d\\n\ }

A) 17 B) 18 C) 23 D) 24 正确答案是: B 10、

假设有以下定义: int a,b,c1,c2,x,y; 那么

正确的switch 语句是

A) switch(a+b); B) switch(a*a+b*b)

{ case 1:y=a+b;break; { case 3: case 2:y=a-b;break; case 1:y=a+b;break;

} case 3:y=b-a;break;

} C) switch a D) switch(a-b) {

case

c1:y=a-b;break;

{ default:y=a*b;break;

case c2:y=a*d;break; case 3: default:x=a+b; case 4:x=a+b;break;

} case 10:

case 11:y=a-b;break;

} 正确答案是: D

1一、 以下不正确的if语句是( )。 A) if(x>y) printf(\"%d\\n\ B) if (x=y)&&(x!=0) x+=y;

C) if(x!=y) scanf(\"%d\ D) if(x1二、 在执行以下程序时,为了使输出结果为:t=4 那么给a和b

输入的值应知足的条件是 #include void main( ) { int s,t,a,b;

scanf(\"%d,%d\ s=1; t=1; if (a<0) s=s+1; if (a>b) t=s+t; else if (a==b) t=5; else t=2*s; printf(\"t=%d\\n\ }

A) a>b B) aa>b D) 0请读程序:

#include void main( )

{ int x=1,y=0,a=0,b=0; switch(x)

{ case 1: switch (y) { case 0: a++;break; case 1: b++;break; }

case 2: a++;b++;break; }

printf(\"a=%d,b=%d\\n\ }

上面程序的输出结果是

A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2

正确答案是: A 14、 运行下面程序时,假设从键盘输入数据为

\"86\",

那么输出结果是( )。 #include \"stdio.h\" void main() { int t;

scanf(\"%d\

if (t>=90) printf(\"A\\n\"); else if (t>=80) printf(\"B\\n\"); else if (t>=70) printf(\"C\\n\"); else if (t>=60) printf(\"D\\n\"); else printf(\"E\\n\"); printf(\"OK\\n\"); }

A) B B) B OK C) B D) B OK C D E OK 正确答案是: C

1五、 运行下面程序时,从键盘输入数据为\"2,13,5\", 那么输出结果是( )。 #include void main( ) { int a,b,c;

scanf(\"%d,%d,%d\ switch(a)

{ case 1: printf(\"%d\\n\

case 2: printf(\"%d\\n\

case 3: printf(\"%d\\n\ case

4:

{

if(c!=0)

B) 输出* * * *。

C) 能够通过编译,可是不能通过连接,因此不能运行。 {printf(\"%d\\n\ else {printf(\"error\\n\");break;} } defualt: break; } }

A) 10 B) 8 C) 65 D) error 正确答案是: B

1六、 以下程序的输出结果是 #include void main( ) {

int a,b,d=241; a=d/100%6; b=1 && (-1);

printf(\"%d,%d\\n\ }

A) 6,1 B) 2,1 C) 6,0 D) 2,0 正确答案是: B 17、

下面的程序

#include void main( ) { int x=3,y=0,z=0;

if (x=y+z) printf(\"* * * *\"); else printf(\"# # # #\"); } A) 有语法错误不能通过编译。

D) 输出# # # #。 正确答案是: D

1八、 设a为整型变量,不能正确表达数学关系1010B)

a==11||a==12||a==13||a==14

C) a>10&&a<15 D) !(a<=10)&&!(a>=15) 正确答案是: A

1九、 假设输入字符串:abcde<回车>,那么以下while循环体将执行多少次。

while((ch=getchar())!='e') printf(\"*\"); A) 5 B) 4 C) 6 D) 1 正确答案是: B 20、

执行下面程序后sum的值是( )。

#include void main( ) { int i,sum=0; for(i=1;i<6;i++) sum+=i;

printf(\"%d\\n\ }

A) 15 B) 14 C) 不确信 D) 0 正确答案是: A

2一、 阅读以下程序: #include

void main( ) { int x;

for(x=5;x>0;x--)

if (x--<5) printf(\"%d,\ else printf(\"%d,\ 程序运行后的输出结果是( )。 A) 4,3,2 B) 4,3,1, C) 5,4,2 D) 5,3,1, 正确答案是: B

2二、 设有以下程序 #include void main( ) { int n1,n2; scanf(\"%d\ while (n2!=0) { n1=n2%10; n2=n2/10; printf(\"%d\ } }

程序运行后,假设是从键盘上输入1298,那么输出结果为( )。

A) 892 B) 8921 C) 89 D) 921 正确答案是: B 23、

下面程序的运行结果是( )。

#include void main( ) { int m=7,n=5,i=1; do

{ if (i%m==0);

if (i%n==0)

{ printf(\"%d\\n\ i++; } while(i!=0); }

A) 7 B) 6 C) 5 D) 4 正确答案是: C 24、 下面程序段的输出结果是( )。

x=3; do { y=x--;

if (!y) {printf(\"*\");continue;} printf(\"#\"); } while(x=2); A) ## B) ##* C) 死循环 D)输犯错误信息 正确答案是: C

2五、 以下程序运行后的输出结果是( )。 #include void main( ) { int s=0,k; for(k=7;k>=0;k--) {switch(k) { case 1: case 4:

case 7: s++; break; case 2: case 3: case 6: break; case 0:

case 5: s+=2; break; } }

printf(\"s=%d\\n\ }

A)s=5 B)s=1 C)s=3 D)s=7 正确答案是: D

2六、 以下程序的输出结果是( )。 #include void main( ) { int i, j, k; for(i=0;i<=2;i++)

{ for(k=1;k<=i;k++) printf(\" \"); for(j=0;j<=3;j++) printf(\"*\"); printf(\"\\n\"); } }

A) **** B) **** **** **** **** **** C) **** D) *** **** *** **** *** 正确答案是: B 27、

设x和y均为int型变量,那么执行下面的循

环后,y的值为

for(y=1,x=1;y<=50;y++) { if( x>=10) break; if (x%2==1) { x+=5; continue;} x-=3;

}

A) 2 B) 4 C) 6 D) 8 正确答案是: C

2八、 有如下程序 #include void main()

{ char ch[80]=\"123abcdEFG*&\"; int j;long s=0;

for(j=0;ch[j]>'\\0';j++) ; printf(\"%d\\n\ }

该程序的功能是________。 A) 测字符数组ch的长度

B) 将数字字符串ch转换成十进制数 C) 将字符数组ch中的小写字母转换成大写 D) 将字符数组ch中的大写字母转换成小写 正确答案是: A

2九、 以下程序的输出结果是________。 #include void main() {

a[3][3]={{1,2,3},{3,4,5},{5,6,7}},i,j,s=0; for(i=0;i<3;i++)

for(j=i;j<3;j++) s+=a[i][j]; printf(\"%d\\n\ }

A) 26 B) 36 C) 19 D) 22 正确答案是: D

int

30、 当执行下面的程序时,如果输入ABC,那么输出结果是_________。 #include \"stdio.h\" #include \"string.h\" void main()

{ char ss[10]=\"12345\"; gets(ss); strcat(ss,\"6789\"); printf(\"%s\\n\ }

A) ABC6789 B) ABC67 C) 12345ABC6 D) ABC45678 正确答案是: A

3一、 下面的程序中第________行有错误(每行程序前面的数字是行号) 1 #include 2 void main() 3 {

4 float a[3]={0.0}; 5 int i;

6 for(i=0;i<3;i++) scanf(\"%d\ 7 for(i=1;i<3;i++) a[0]=a[0]+a[i]; 8 printf(\"%f\\n\ 9 }

A) 没有 B) 第4行 C) 第6行 D) 第8行 正确答案是: C

3二、 设有以下定义语句 char

str1[]=\"string\\";

那么下面对函数strcpy的挪用中,错误的挪用是________。

(此函数用来复制字符串)

A) strcpy(str1,\"HELLO1\"); B) strcpy(str2,\"HELLO2\");

C) strcpy(str3,\"HELLO3\"); D) strcpy(str4,\"HELLO4\"); 正确答案是: C 33、

以下程序输出的结果是________。

#include void main( )

{ int a[ ]={1,2,3,4,5},i,j,s=0; j=1;

for(i=4;i>=0;i--) { s=s+a[i]*j; j=j*10; } printf(\"s=%d\\n\ }

A) s=12345 B) s=1 2 3 4 5 C) s=54321 D) s=5 4 3 2 1 正确答案是: A 34、

以下程序执行后的输出结果是________ 。

〔设a[0][0] 是数组a中的第1个元素〕 #include void main( ) {

int

a[4][5]={1,2,4,8,10,-1,-2,-4,-8,-10,3,5,7,9,11};

int i,j,n=9; i=n/5; j=n-i*5-1; printf(\"NO.

%d:

%d

%d

is %d\\n\ }

A) 第n个元素所在的行和列及其该元素的值 B) 第n行的最大元素所在的行和列及其最大值 C) 第i行的最大元素所在的行和列及其最大值 D) 以上都不对 正确答案是: A

3五、 假设有定义语句:char s[100],d[100]; int int d=1; int fun( int p) { static int d=5; d+=p;

printf(\"%d \ return (d); } j=0,i=0; ,且s中已赋字

符串,请在划线处填______以实现将字符串s中的内容拷贝到字符串d

中。〔注意:不得利用逗号表达式〕 while(s[i]) { d[j]=__________; j++; } d[j]=0;

A) s[i] B) s[++i] C) s[i++] D) s[j] 正确答案是: C

3六、 下面程序输出的结果是________。 #include void main( ) { int i,j,x=0;

static int a[6]={1,2,3,4,5,6};

for(i=0,j=1;i<5;++i,j++) x+=a[i]*a[j]; printf(\"%d\\n\ }

A) 数组a中首尾的对应元素的乘积 B) 数组a中首尾的对应元素的乘积之和 C) 数组a中相邻各元素的乘积 D) 数组a中相邻各元素的乘积之和 正确答案是: D 37、

以下程序的输出结果是________。

#include

void main()

{ int a=3; printf(\"%d \\n\A) 6 11 11 B) 6 6 9 C) 6 12 12 D) 6 6 15 正确答案是: C

3八、 以下程序的输出结果是________。 #include

int a[3][3]={1,2,3,4,5,6,7,8,9},b[10]; void f (int s[],int p[ ][3]) { s[0]=p[1][1]; } void main() { f(b,a);

printf(\"%d\\n\

A) 1 B) 4 C) 7 D) 5 正确答案是: D

3九、 请读程序: #include void fun(int s[ ]) { int j=0; do

s[j]+=s[j+1]; while (++j<2); } void main()

{ int k, a[10]={2,3,4,5,6}; for(k=1;k<3;k++) fun(a);

for(k=0;k<5;k++) printf(\"%d\ 上面程序的输出结果是_________。 A) 56956 B) 34556 C) 57956 D) 1211456 正确答案是: D 40、

以下程序执行后输出的结果是________。

#include int f(int a) {int b=0; static c=3; a=c++,b++; return(a); } void main() {int a=2,i,k; for(i=0;i<3;i++) k=f(a++); printf(\"%d\\n\ A) 3 B) 0 C) 5 D) 4 正确答案是: C

4一、 设有如下的函数 void ggg(x) {float x;

printf(\"\\n%d\ 那么函数的类型________。

A) 与参数x的类型一样 B) 是void C) 是int D) 无法确信 正确答案是: C

4二、 以下函数fun形参的类型是________。 fun( float x) { float y; y=3*x-4; return y; }

A) int B) 不确信 C) void D) float 正确答案是: D

43、 以下函数strtod的功能是,将一个十进制数

字的字符串转换成与它等价

的有符号十进制整数值,划线处应填入________。 int strtod( char s[ ]) { int i=0,f=0; int n;

n=0; if(s[0]== '-') {f=1;________; } for(;s[i]!= '\\0';i++) n= n*10+s[i]-'0'; if(f==1) return (-n); else return (n); } A) n=-1 B) i=1 C) n=n*(-1) D) i=0 正确答案是: B 44、

以下表达中,不正确的选项是________。

A) 利用static float a概念的外部变量存放在内存中的静态存储区

B) 利用float b概念的外部变量存放在内存中的动态存储区

C) 利用static float c概念的内部变量存放在内存中的静态存储区

D) 利用float d概念的内部变量存放在内存中的动态存储区

正确答案是: B

4五、 请读程序: #include func( int a, int b) { int c; c=a+b; return c; } void main()

{ int x=6, y=7, z=8, r; r=func( (x--,y++,x+y),z--); printf(\"%d\\n\ 上面程序的输出结果是________。 A) 11 B) 20 C) 21 D) 31 正确答案是: C 选择题(共 题),成绩() 一、

以下表达正确的选项是:

A) 在C程序中,主函数必需位于程序的最前面 B) 在C程序中,一行只能写一条语句 C) C程序的大体构造是程序行

D) C语句是完成某种程序功能的最小单位 正确答案是: D 二、 以下能正确定义变量a、b和c并为其赋值的

语句是:

A) int a=5; b=5; c=5; B) int a,b,c=5; C) a=5, b=5, c=5; D) int a=5, b=5, c=5;正确答案是: D

3、 a,b均为整数,且b!=0,那么表达式a/b*b+a%b的值是:

A) a B) b

C) a被b除的整数部份 D) a被b除的商的整数部份

正确答案是: A

4、 以下符合C语言语法的表达式: A) d=9+e+f=d+9 B) d=9+e,f=d+9 C) d=9+e=e++,d+9 D) d=9+e++=d+7 正确答案是: B 五、

设x为int型变量,那么执行语句x=10和

x+=x-=x-x后,x的值为: A) 10 B) 20 C) 40 D) 30 正确答案是: B 六、

阅读下面的程序

#include void main() {

char ch;

scanf(\"%3c\ printf(\"%c\ }

假设是从键盘上输入

abc<回车> 那么程序的运行结果是: A) a B) b

C) c D) 程序语法犯错 正确答案是: A

7、 请读程序:

#include void main() { int a; float b,c;

scanf(\"%2d%3f%4f\ printf(\"\\na=%d,b=%f,c=%f\\n\ }

假设运行时从键盘上输入9876543210(表示回车),那么上面程序的 输出结果是 A)

a=98,b=765,c=4321 B) a=10,b=432,c=8765

正确答案是: C 八、

C语言中最简单的数据类型包括

A) 整型,实型,逻辑型 B) 整型,实型,字符型

C) 整型,字符型,逻辑型 D) 整型,实型,逻辑型,字符型

正确答案是: B 九、

假设要求在if后一对圆括号中表示a不等于

0的关系,那么能正确表示这一关 系的表达式为

A) a<>0 B) !a C) a=0 D) a 正确答案是: D 10、

假设有以下定义: float x; int a,b; 那么

正确的switch 语句是

A) switch(x) B) switch(x) { case 1.0:printf(\"*\\n\"); { case 1,2:printf(\"*\\n\");

case 2: printf(\"**\\n\") case

3:printf(\"**\\n\");

} }

C) switch(a+b) D) switch(a-b); { case 1: printf(\"*\\n\") ; { case 1:printf(\"*\\n\");

case 2: printf(\"**n\"); case 2:printf(\"**\\n\");

} } 正确答案是: C

1一、 以下程序段运行结果是( )。

int x=1,y=1,z=-1; x+=y+=z;

printf(\"%d\\n\ A) 1 B) 2

C) 4 D) 不确信的值 正确答案是: A

1二、 在执行以下程序时,为了使输出结果为:t=4 那么给a和b

输入的值应知足的条件是

#include void main( ) { int s,t,a,b;

scanf(\"%d,%d\ s=1; t=1; if (a<0) s=s+1;

if (a>b) t=s+t; else if (a==b) t=5; else t=2*s; printf(\"t=%d\\n\

}

A) a>b B) aa>b D) 0以下程序输出结果是

#include void main( ) { int m=4;

if (++m>5) printf(\"%d\\n\ else printf(\"%d\\n\ }

A) 7 B) 6 C) 5 D) 4 正确答案是: D 14、

假设执行下面的程序从键盘上输入9,那么输

出结果是

#include void main( ) {int n;

scanf(\"%d\

if (n++<10) printf(\"%d\\n\ else printf(\"%d\\n\ A) 11 B) 10 C) 9 D) 8 正确答案是: B

1五、 请读程序: #include void main( ) { float x,y; scanf(\"%f\

if (x<0.0) y=0.0;

else if ((x<5.0) && (x!=2.0)) y=1.0/(x+2.0); else if (x<10.0) y=1.0/x; else y=10.0; printf(\"%f\\n\ }

假设运行时从键盘上输入2.0(表示回车),那么上面程序 的输出结果

正确答案是: C

1六、 选择出合法的if语句(设int x,y;): A) if (x!=y) if(x>y) printf(\"x>y\\n\");

else printf(\"xif (x>y) printf(\"x>y\\n\") else printf(\"xC) if (x!=y) if(x>y) printf(\"x>y\\n\"); else printf(\"xif(x>y) printf(\"x>y\\n\"); else printf(\"x17、 执行以下程序,输入为1的输出结果是( )。 #include

void main( ) { int k;

scanf(\"%d\ switch (k) {

case 1: printf(\"%d\\n\ case 2: printf(\"%d\\n\ case 3: printf(\"%d\\n\ case 4: printf(\"%d\\n\ default: printf(\"Full!\\n\"); } }

A) 1 B) 2 C) 2 D) 1 3 2 4 3 5 4 正确答案是: D

1八、 执行以下程序,分别输入10和30,运行的结果分别是( )。 #include void main( ) { int x,c,y; scanf(\"%d\ if (x<0) c=-1; else c=x/10; switch (c)

{ case -1: y=0; break; case 0: y=x; break; case 1: y=10; break; case 2:

case 3: y=-0.5*x+20; break; default: y=-2; }

if (y!=-2) printf(\"y=%d\\n\ else printf(\"error\\n\"); }

A) y=10 B) y=10 y=-2 y=10 C) y=10 D) y=0 y=5 y=-2 正确答案是: C

1九、 C语言中while 和do-while 循环的主要区别是( )。

A) do-while的循环体至少无条件执行一次

B) while 的循环操纵条件比do-while 的循环操纵条件严格

C) do-while 许诺从外部转到循环体内 D) do-while 的循环体不能是复合语句 正确答案是: A 20、

以下程序的输出结果是

#include void main( ) { int a,b;

for(a=1,b=1;a<=100;a++) { if (b>=10) break;

if (b%5==1) { b+=5; continue; } } printf(\"%d\\n\ A) 101 B) 6 C) 4 D) 3 正确答案是: D

2一、 下面程序的输出结果是( )。 #include void main( )

{ unsigned int num,k; num=26;k=1; do {

A) n=1 B) t=1 s+=t s=s/t

s=s+t t+=s 正确答案是: A 23、

以下程序段的执行结果是( )。

k*=num%10; num/=10; } while(num); printf(\"%d\\n\ }

A) 2 B) 12 C) 60 D) 18 正确答案是: B

2二、 下面函数的功能是根据以下的公式,返回满足精度∈要求的π值,请填空。

π 1 1 2 1 2 3 1 2 3 4 — = 1+— + — — + — — — + — — — — + …… 2 3 3 5 3 5 7 3 5 7 9

#include void main( )

{ double esp,s=0.0, t=1.0; int n;

scanf(\"%f\

for(_________; t>esp; n++) { __________; t=n*t/(2*n+1);} s=2*s;

printf(\"s=%f\\n\ }

int i,j,m=0; for(i=1;i<=15;i+=4) for(j=3;j<=19;j+=4) m++;

printf(\"%d\\n\ A) 12 B) 15 C) 20 D) 25 正确答案是: C 24、

下面程序的输出结果是( ) #include void main( ) { int x=10,y=10,i; for(i=0;x>8;y=++i) printf(\"%d %d \ }

A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1 正确答案是: D

2五、 下面程序的输出结果是( ) #include void main( ) { int i;

for(i=1;i<6;i++)

。 { if (i%2) {printf(\"#\");continue;} 3 3 printf(\"*\"); }

printf(\"\\n\"); }

A) #*#*# B) ##### C) ***** D) *#*#* 正确答案是: A

2六、 有如下程序 #include void main() { int x=23; do

{ printf(\"%d\ while(!x); }

该程序的执行结果是

A) 321 B) 23 C) 不输出任何内容 D) 陷入死循环 正确答案是: B 27、

以下程序的输出结果是( )。 #include void main( ) {

int num=0; while (num<=2) { num++;

printf( \"%d\\n\ }

A) 1 B) 1 C) 1 D) 1 2 2 2

4 正确答案是: C

2八、 以下程序的输出结果是________。 #include void main() {

char

a[10]={'1','2','3','\\0','5','6','7','8','9',0};

printf(\"%s\\n\ }

A) 123 B) 1230 C) 123056789 D) 1230567890 正确答案是: A

2九、 设有以下定义语句: char

str[4][12]={\"aaa\ 下面对字符串的引用正确的选项是________。 A) strp[0][3] B) str[4] C) str[1] D) strp[1][4] 正确答案是: C 30、

以下给字符数组str定义和赋值正确的选项

是________。

A) char str[10]; str={\"China!\ B) char str[ ]={\"China!\ C)

char

str[10];

strcpy( str,\"abcdefghijkl\"); D) char str[10]={\"abcdefghijkl\ 正确答案是: B

3一、 假设有说明:char 置,程序划线处的正确 c[10]={'E','a','s','t','\\0'};,那么下述说法 中正确的选项是________。

A) c[7]不可引用 B) c[6]可引用,但值不确信

C) c[4]不可引用 D) c[4]可引用,其值为空字符

正确答案是: D

3二、 假

char

s1[ ]={\"tree\

那么以下对数组元素或数组的输出语句中,正确的选项是________。

A) printf(\"%s%s\ B) printf(\"%c%c\ C) puts(s1);puts(s2); D) puts(s1,s2); 正确答案是: C 33、

下面程序运行后,输出结果是________。

#include void main( )

{ int a[10]={1,2,3,4,5,6},i,j; for(i=0;i++<3;)

{ j=a[i];a[i]=a[5-i];a[5-i]=j;} for(i=0;i<6;i++) printf(\"%d \ }

A) 6 5 4 3 2 1 B) 1 2 3 4 5 6 C) 1 5 4 3 2 6 D) 1 5 3 4 2 6 正确答案是: D 34、

下面程序用来求二维数组的最大元素及其位

选择项是________。 #include void main( )

{ int a[5][4],i,j,max,row,col; for(i=0;i<5;i++)

for(j=0;j<4;j++) scanf(\"%d\ max=a[4][0]; row=4;col=0; for(________)

for(j=0;j<4;j++) if(maxprintf(\"max=%d,row=%d,col=%d\\n\}

A) i=4;i>0;--i B) i=0;i<5;i++ C) i=-1;i<4;++i D) i=5;i>0;--i 正确答案是: B

3五、 要求下面程序运行后,输出二维数组a的前2列各元素之和,划线处 应填入________。 #include void main() {

int

a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23},i,j,k=0;

for(i=0; i<3; i++)

for(__________) k+=a[i][j]; printf(\"%d\\n\ }

A) j=0; j<2; j++ B) j=0; j<4;j++

C) j=0; j<=2; j++ D) j=1; j<2;j++ 正确答案是: A

3六、 合法的数组定义是________。

A) int a[6]={\"string\ B) int a[5]={0,1,2,3,4,5};

C) char a={\"string\ D) char return (sqrt(6*s)); } A) 1.0/i/i B) 1.0/i*i C) 1/(i*i) D) 1/i/i 正确答案是: A

3九、 C语言中形参的缺省存储类别是________。 A) 自动(auto) B) 静态(static) a[]={0,1,2,3,4,5}; 正确答案是: D 37、

以下函数的功能是:在第一个循环中给前10

个数组元素依次赋1、2、3、

4、五、六、7、八、九、10;在第二个循环中使a数组中前10个元素中的值对

称折叠,变成一、二、3、4、五、五、4、3、二、1。划线处应填________。 fun( int a[]) { int i;

for(i=1;i<=10;i++) ______=i; for(i=0;i<5;i++) ______=a[i]; }

A) a[i-1]和a[10-i] B) a[i]和a[10-i] C) a[i-1]和a[9-i] D) a[i]和a[9-i] 正确答案是: C

3八、 函数pi的功能是根据以下近似公式求π值: (π*π)/6=1+1/(2*2)+1/(3*3)+……+1/(n*n) 请你在下面程序中的划线部份填入________,完成求π的功能。

#include \"math.h\" double pi(int n) { double s=0.0; int i;

for(i=1;i<=n;i++) s=s+________;

C) 寄放器(register) D) 外部(extern) 正确答案是: A 40、

请读程序:

#include #include void fun(char w[ ],int m) { char s; int i,j; i=0;j=m-1; while (i{ s=w[i]; w[i]=w[j]; w[j]=s;i++;j--;} }void main()

{ char a[]=\"ABCDEFG\"; fun(a,3); puts(a); }

上面程序的输出结果是________。 A) GFEDCBA B) ABCDEFG C) CBADEFG D) GAGGAGA 正确答案是: C

4一、 下面函数的功能是________。 void sss(s,t) char s[ ],t[ ]; { int i=0;

while( t[i]) { s[i]=t[i]; i++ ; }

s[i]= '\\0'; } A) 求字符串的长度 B) 比拟两个字符串的大小 C) 将字符串s复制到字符串t中 D) 将字符串t复制到字符串s中 正确答案是: D

4二、 对于C语言的函数,以下表达中正确的选项是________。

A) 函数的概念不能嵌套,但函数挪用能够嵌套 B) 函数的概念能够嵌套,但函数挪用不能嵌套 C) 函数的概念和挪用都不能嵌套 D) 函数的概念和挪用都能够嵌套 正确答案是: A 43、

以下函数htoi的功能是,将一个十六进制数

字的字符串转换成与它等价

的十进制整数值,划线处应填入________。 int htoi( char s[ ]) { int i,n; n=0;

for(i=0;s[i]!= '\\0';i++)

{ if(s[i]>= '0'&&s[i]<='9') n=n*16+s[i]-'0'; if(s[i]>= 'a'&&s[i]<='f') n=____________; if(s[i]>= 'A'&&s[i]<='F')

n=n*16+s[i]-'A'+10; } return (n); }

A) n*16+s[i]-'0' B) n*16+s[i]-'a'; C) n*16+s[i]-'a'+10 D) n*10+s[i]-'a'+10 正确答案是: C 44、

以下表达中,错误的选项是________。

A) 函数未被调历时,系统将不为形参分派内存单元

B) 实参与形参的个数应相等,且类型一样或赋值兼容 C) 实参能够是常量、变量或表达式 D) 形参能够是常量、变量或表达式 正确答案是: D

4五、 请读程序: #include void fun( int *s) { static int j=0;

do { s[j]+=s[j+1]; } while(++j<2); } void main()

{ int k, a[10]={1,2,3,4,5}; for(k=1; k<3; k++) fun(a);

for(k=0; k<5; k++) printf(\"%d\ 上面程序的输出结果是 A) 34756 B) 23445 C) 35745 D) 12345 正确答案是: C

选择题(共 题),成绩() 一、

在C语言中,五种根本数据类型存储空间长度

的排列顺序是:

A) char下面程序的输出是:

#include void main()

{

unsigned int a=32767; printf(\"a=%d\\n\ }

A) a=32768 B) a=-32767 C) a=32767 D) a=-1 正确答案是: C

3、 在C语言中,下面合法的长整型数是: A) 0L B) 4967

正确答案是: A

4、 以下表达中不正确的选项是:

A) 空字符串(即两个双引号连写)只占一个存储单元 B) 字符型常量能够放在字符型变量中 C) 字符串常量能够放在字符型变量中

D) 字符型常量能够与整数混合运算,而字符串常量不能够

正确答案是: C 五、

a=1,b=2,c=3,d=4,那么表达式

a以下符合C语言语法的表达式:

A) d=9+e+f=d+9 B) d=9+e,f=d+9 C) d=9+e=e++,d+9 D) d=9+e++=d+7 正确答案是: B

7、 以下程序的输出结果是: #include

void main() {

int a=12, b=12;

printf(\"%d,%d\\n\ }

A) 10,10 B) 12,12 C) 11,10 D) 11,13 正确答案是: D 八、

C语言程序的根本单位是

A) 程序行 B) 语句 C) 函数D) 字符

正确答案是: C 九、

C语言提供的合法的数据类型关键字是

A) Double B) short C) integer D) Char

正确答案是: B 10、

设a,b和c都是int型变量,且a=3,b=4,c=5,

那么下面的表达式中, 值为0的表达式是

A) 'a'&&'b' B) a<=b C) a||b+c&&b-c D) !((a1一、 执行以下程序后的输出结果是( )。

#include void main( )

{ int k=4,a=3,b=2,c=1;

printf(\"%d\\n\ }

A) 4 B) 3

C) 2 D) 1 正确答案是: D

1二、 以下程序的执行结果是( )。 #include \"stdio.h\" void main( ) { int a=8,b=-7,c=5; switch (a>0)

{ case 1: switch (b<0)

{ case 1:printf(\"@\");break; case 2:printf(\"!\");break; }

case 0: switch (c!=0)

{ case 0:printf(\"*\");break; case 1:printf(\"#\");break; default:printf(\"$\");break; }

default:printf(\"&\"); }

printf(\"\\n\"); }

A) *#$ B) & C) @#& D) @*& 正确答案是: C 13、

假设执行下面的程序从键盘上输入5,那么输

出结果是

#include void main( ) {int x;

scanf(\"%d\

if (x++>5) printf(\"%d\\n\ else printf(\"%d\\n\

}

A) 7 B) 6 C) 5 D) 4 正确答案是: B 14、

下面程序的输出是

#include void main( ) {int a=-1,b=4,k;

k=(a++<=0) && (!(b--<=0)); printf(\"%d %d %d\\n\ }

A) 0 0 3 B) 0 1 2 C) 1 0 3 D) 1 1 2 正确答案是: C

1五、 执行下面的程序后,a的值为 #include void main( ) { int a,b;

for(a=1,b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) { b+=3; continue; } b-=5; } }

A) 7 B) 8 C) 9 D) 10 正确答案是: B

1六、 有如下程序: #include void main( )

{ int a=2,b=-1,c=2; if (a1九、 有以下程序段 int k=0; while (k=1) k++; while循环执行的次数是

A) 无穷次 B) 有语法错,不能执行 if (b<0) c=0; else c++; printf(\"%d\\n\ }

该程序的输出结果是 A) 0 B) 1 C) 2 D) 3 正确答案是: C 17、

下面程序的输出结果是( )。

#include void main( ) { int x=8,y=-7,z=9; if (xA) 8 B) 1 C) 9 D) 0 正确答案是: C

1八、 设a为整型变量,不能正确表达数学关系1010B)

a==11||a==12||a==13||a==14

C) a>10&&a<15 D) !(a<=10)&&!(a>=15) 正确答案是: A

C) 一次也不执行 D) 执行一次 正确答案是: A 20、

以下程序段的输出结果是( )。

int k,n,m; n=10;m=1;k=1;

while (k<=n) {m*=2;k+=4;} printf(\"%d\\n\ A) 4 B) 16 C) 8 D) 32 正确答案是: C

2一、 阅读以下程序: #include void main( ) { int x;

for(x=5;x>0;x--)

if (x--<5) printf(\"%d,\ else printf(\"%d,\ 程序运行后的输出结果是( )。 A) 4,3,2 B) 4,3,1, C) 5,4,2 D) 5,3,1, 正确答案是: B

2二、 执行以下程序后,输出的结果是( ) #include void main( ) { int y=10;

。 do {y--;} while (--y); printf(\"%d\\n\ }

A) -1 B) 1 C) 8 D) 0 正确答案是: D 23、

下面程序的输出结果是( )。 #include void main( ) { int x=10,y=10,i; for(i=0;x>8;y=++i) printf(\"%d %d \ }

A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1 正确答案是: D 24、

以下循环体的执行次数是

#include void main( ) { int i,j;

for(i=0,j=1; i<=j+1; i+=2, j--) printf(\"%d \\n\ }

A) 3 B) 2 C) 1 D) 0 正确答案是: C

2五、 下面程序的运行结果是( )。 #include void main( ) { int m=7,n=5,i=1;

do

{ if (i%m==0); if (i%n==0)

{ printf(\"%d\\n\ i++; } while(i!=0); }

A) 7 B) 6 C) 5 D) 4 正确答案是: C

2六、 根据以下公式计算S,请填空。 1 1 1 1 S=1- ─ + ─ - ─ + ……+ ── 3 5 7 2n+1 #include void main( ) { int i,n;

float s=0.0,w,f=-1.0; scanf(\"%d\ for(i=0;i<=n;i++) { f=_____*f; w=f/(2*i+1); ________; }

printf(\"s=%f\\n\ }

s=s-w s+=w C) 1.0 D) 1 s+=f w=w+s 正确答案是: B 27、

以下程序运行后的输出结果是( )。

#include void main( ) { int i,j,sum,m,n=4; sum=0;

for(i=1;i<=n;i++) { m=1;

for(j=1;j<=i;j++) m=m*j; sum=sum+m; }

printf(\"sum=%d\\n\ }

A)sum=9 B)sum=33 C)33 D)sum=18 正确答案是: B

2八、 数组a的赋值情况如下所示,那么执行语句a[2]++;后,a[1]和a[2]的值 别离是________。

a[0] a[1] a[2] a[3] a[4] ┌──┬──┬──┬──┬──┐ │ 10│ 20│ 30│ 40│ 50│ └──┴──┴──┴──┴──┘ A) 20和30 B) 20和31 C) 21和30 D) 21和31 正确答案是: B

2九、 以下程序执行后的输出结果是________。 #include void main() { char arr[2][4]; strcpy(arr[0],\"you\"); strcpy(arr[1],\"me\");

printf(\"%s\\n\ }

A) you&me B) you C) me D) err 正确答案是: B 30、

以下程序的输出结果是_________。

#include void main()

{ char w[][10]={\"ABCD\ for(k=1;k<3;k++) printf(\"%s\\n\ }

A) ABCD B) ABCE FGH EFG KL IJ M C) EFG D) EFGH JK IJKL O

正确答案是: D 3一、 有以下程序: #include

#define N 4 void main()

{ char c[N];int i=0;

for(;i输入以下2行,每行输入都是在第一列上开场,代表一个回车符: a

bc

程序的输出结果是______。 A) abc B) a b c C) ab D) a c bc 正确答案是: D

3二、 以下给字符数组str定义和赋值正确的选项是________。

A) char str[10]; str={\"China!\ B) char str[ ]={\"China!\ C)

char

str[10]; strcpy( str,\"abcdefghijkl\"); D) char str[10]={\"abcdefghijkl\ 正确答案是: B 33、

当承受用户输入的含有空格的字符串时,应

使用________函数。

A) gets( ) B) getchar( )C) scanf( ) D) printf( )

正确答案是: A

34、

下面程序的功能是________。

#include void main()

{ char s[ ]=\"father\"; int i,j=0; for(i=1;i<6;i++) if(s[j]>s[i]) j=i;

printf(\"%c,%d\\n\

A) 输出字符数组s中ASCII码最大的字符及位置 B) 输出字符数组s中ASCII码最小的字符及位置

C) 输出字符数组s中ASCII码最大的字符及字符串的长度

D) 输出字符数组s中ASCII码最小的字符及字符串的长度

正确答案是: B

3五、 下面的程序运行后,输出结果是________。 #include void main( )

{ int i,j,a[7][7],x=0; for(i=0;i<3;i++)

for(j=0;j<3;j++) a[i][j]=3*j+i; for(i=2;i<7;i++) x+=a[i][i]; printf(\"%d\\n\ }

A) 8 B) 不确信值 C) 20 D) 0 正确答案是: B

3六、 设有定义语句:static char str[20]=\"Are

you ready?\";,那么执行

printf(\"%d\\n\

后的输出结果为________。(注意各单词之间有一空格)

A) 16 B) 10 C) 2 D) 20 正确答案是: A 37、

以下程序中,主函数调用了LineMax函数,实

现在N行M列的二维数组中,

找出每一行上的最大值,划线处应填______。 #define M 4 #define N 3

void LineMax(int x[N][M])

{ int i,j,p;

for(i=0;ifor(j=0;jif(x[i][p]max

value

in

line

%d

函数func的形参数个数是 A) 3 B) 4

C) 5 D) 有语法错误 正确答案是: A 40、

以下函数把b字符串连接到a字符串后面,并

is %d\\n\ }

void main()

{ int x[N][M]={1,5,7,4,2,6,4,3,8,2,3,1}; LineMax(x); }

A) i,x[i][j] B) j,x[i][j] C) j,x[i][p] D) i,x[i][p] 正确答案是: D

3八、 假设有以下调用语句,那么正确的fun函数首部是

void main() { ∶ ∶

int a;float x; ∶ ∶ fun(x,a); ∶ ∶ }

A) void fun(int m,float x) B) void fun(float a,int x)

C) void fun(int m,float x[]) D) void fun(int x,float a)

正确答案是: B 3九、 有

句func(rec1,rec2+rec3,func(rec1,rec2,rec3));

返回a中新字符串的长度。

下面的两划线处应别离填入________。 int strcen(char a[],char b[]) { int num=0,n=0;

while( a[num]!=______) num++;

while(b[n]) { a[num]=b[n];num++;________;} return (num); }

A) '\\n'和n++ B) '\\n'和num++ C) '\\0'和n++ D) '\\0'和num++ 正确答案是: C

4一、 以下函数调用语句中含有实参个数为________。

func((exp1,exp2),(exp3,exp4,exp5)); A) 1个 B) 2个 C) 4个 D) 5个 正确答案是: B

4二、 以下程序执行后输出的结果是________。 #include int f(int a) {int b=0 , c=3; a=c++,b++; return(a); } void main() {int a=2,i,k; for(i=0;i<3;i++) k=f(a++);

printf(\"%d\\n\

A) 3 B) 0

C) 5 D) 4 正确答案是: A 43、

下面程序的输出是_________。

int m=13;

int fun(int x,int y) { int m=3;

return(x*y-m); } void main() {int a=7,b=5;

printf(\"%d\\n\ A) 1 B) 2 C) 7 D) 10 正确答案是: B

4、 下面函数的功能是________。 sss(s, t) char s[ ], t[ ]; { int i=0;

while((s[i])&&(t[i])&&(t[i]== s[i])) i++;return (s[i]-t[i]);} A) 求字符串的长度 B) 比拟两个字符串的大小 C) 将字符串s复制到字符串t中 D) 将字符串s接续到字符串t中 正确答案是: B 4五、 请读程序: #include f(int b[ ], int n) { int i, r=1;

for(i=0; i<=n; i++) r=r*b[i]; return r; } void main()

{ int x, a[]={ 2,3,4,5,6,7,8,9}; x=f(a, 3);

printf(\"%d\\n\ 上面程序的输出结果是________。 A) 720 B) 120 C) 24 D) 6 正确答案是: B

选择题(共 题),成绩()

一、 以下四组转义符中,均合法的一组是:

A) '\' '\\\\' '\\n' B) '\\' '\\017' '\\x'

C) '\\018' '\\f' '\\xab' D) '\\\\0' '\\101' '\\xif'

正确答案是: A 二、

假设有定义int a=12,n=5,那么表达式

a%=(n%2)运算后,a的值: A) 0 B) 1 C) 12 D) 6 正确答案是: A

3、 以下符合C语言语法的表达式: A) d=9+e+f=d+9 B) d=9+e,f=d+9 C) d=9+e=e++,d+9 D) d=9+e++=d+7 正确答案是: B

4、 执行下面程序段后,输出结果是: int a; int b=65536; a=b;

printf(\"%d\\n\ A) 65536 B) 0

C) -1 D) 1 正确答案是: A 五、

下面程序的输出结果是:

#include void main() {

int a,b,c; int d;

b=(a=32767, a++); c=d=0xffff;

printf(\"%x,%d,%d,%d\\n\ } A)

8000,32767,65535,65535

-1,-1,32767,8000

C) -1,-1,-1,-1 D) 32767,-1,-1,-1 正确答案是: A 六、

阅读下面的程序

#include void main() {

int i,j;

scanf(\"%2d %*3d %2d\ printf(\"%d%4d\ }

假设是从键盘上输入 12 345 67<回车> 那么程序的运行结果是:

A) 12 67 B) 12 345 C) 12345 D) 程序语法犯错 正确答案是: A 7、 请读程序:

#include void main() { int a; float b,c;

scanf(\"%2d%3f%4f\ printf(\"\\na=%d,b=%f,c=%f\\n\ }

假设运行时从键盘上输入9876543210(表示回车),那么上面程序的 输出结果是 A)

a=98,b=765,c=4321

B) a=10,b=432,c=8765

B)

正确答案是: C 八、 请选出可用作C语言用户标识符的一组标识

A) void B) a3_b3 C) For D) 2a

define _123 -abc DO

WORD IF Case sizeof

正确答案是: B 九、

下面合法的C语言字符常量是

A) '\' B) \"A\" C) 65 D) A

正确答案是: A 10、

表达式: 10!=9的值是

A) true B) 非零值 C) 0 D) 1 正确答案是: D

1一、 为了防止嵌套的if-else语句的二义性,C语言规定else总是

与( )组成配对关系。

A) 缩排位置一样的if B) 在其之前未配对的if

C) 在其之前尚未配对的最近的if D) 同一行上的if

正确答案是: C

1二、 int x=10,y=20,z=30,那么执行 if (x>y) z=x;x=y;y=z;

语句后,x、y、z 的值是( )。 A) x=10,y=20,z=30 B) x=20,y=30,z=30 C) x=20,y=30,z=10 D) x=20,y=30,z=20 正确答案是: B 13、

以下条件表达式中能完全等价于条件表达式

x的是( )。

A) (x==0) B) (x!=0) C) (x==1) D) (x!=1) 正确答案是: B 14、

执行以下程序后的输出结果是( )。

#include void main( )

{ int k=4,a=3,b=2,c=1;

printf(\"%d\\n\ }

A) 4 B) 3 C) 2 D) 1 正确答案是: D 1五、 下面程序的输出是 #include void main( ) {int a=-1,b=4,k;

k=(a++<=0) && (!(b--<=0));

printf(\"%d %d %d\\n\ }

A) 0 0 3 B) 0 1 2 C) 1 0 3 D) 1 1 2 正确答案是: C 1六、 以下程序的输出结果是 main( ) { int a=100;

if (a>100) printf(\"%d\\n\ else printf(\"%d\\n\ }

A) a<=100 B) 100 C) 0 D) 1 正确答案是: D 17、

执行以下程序,输入为3的输出结果是( ) #include void main( ) { int k;

scanf(\"%d\ switch (k) {

case 1: printf(\"%d\\n\ case 2: printf(\"%d\\n\ case 3: printf(\"%d\\n\ case 4: printf(\"%d\\n\ default: printf(\"Full!\\n\"); } }

A) 3 B) 3 2 C) 2 D) 2

1 正确答案是: B

1八、 运行下面程序时,假设从键盘输入数据为\"6,5,7\",

那么输出结果是( )。 #include void main( ) { int a,b,c;

scanf(\"%d,%d,%d\ if (a>b) if (a>c)

printf(\"%d\\n\ else

printf(\"%d\\n\ else if (b>c)

printf(\"%d\\n\ else

printf(\"%d\\n\ }

A) 5 B) 6 C) 7 D) 不定值 正确答案是: C

1九、 对于for(表达式1;;表达式3)可理解为( )。

A) for(表达式1;0;表达式3) B) for(表达式1;1;表达式3) C) for(表达式1;表达式1;表达式3) D) for(表达式1;表达式3;表达式3) 正确答案是: B 20、

对下面程序段,描述正确的选项是( )。

for(t=1;t<=100;t++)

{ scanf(\"%d\ if (x<0) continue; printf(\"%d\\n\ }

A) 当x<0时,整个循环终止 B) 当x>=0时,什么也不输出 C) printf函数永久也不执行 D) 最多许诺输出100个非负整数 正确答案是: D

2一、 假设有以下程序段,w和k都是整型变量: w=k; while(w) {w--;

printf(\"*\");}

那么不能与上面程序段等价的循环语句是

A) for(w=k;w!=0;--w) B) w=k; while(w--!=0)

printf(\"*\"); printf(\"*\");w++;

C) w=k; do{w--; D) for(w=k;w;--w) printf(\"*\");}while(w!=0) printf(\"*\"); 正确答案是: C

2二、 以下程序段的执行结果是( )。 int i,j,m=0; for(i=1;i<=15;i+=4) for(j=3;j<=19;j+=4) m++;

printf(\"%d\\n\ A) 12 B) 15 C) 20 D) 25 正确答案是: C

23、 以下程序段的执行结果是 int a,y; a=10;y=0; do

{ a+=2; y+=a;

printf(\"a=%d y=%d\\n\ if (y>20) break; }while(a=14);

A) a=12 y=12 B) a=12 y=12 C) a=12 y=12 D) a=12 y=12

a=14 y=16 a=16 y=28 a=14 y=26

a=16 y=20 a=14 y=44

a=18 y=24

正确答案是: B

24、 以下程序运行后的输出结果是( )。

#include

void main( )

{ int s=0,k;

for(k=7;k>=0;k--)

{switch(k)

{

case 1:

case 4:

case 7: s++; break;

case 2:

case 3:

case 6: break;

case 0:

case 5: s+=2; break; }

}

printf(\"s=%d\\n\ }

A)s=5 B)s=1 C)s=3 D)s=7 正确答案是: D 2五、 有以下程序 #include void main() { int i, j;

for(j=10;j<11;j++)

{ for(i=9;iif (!(j%i)) break;

if (i>=j-1) printf(\"%d\

}

}

输出结果是( )。

A) 11 B) 10

C) 9 D) 10 11

正确答案是: B

2六、 以下程序的输出结果是( )。 #include

void main( )

{ int i,j,x=0;

for(i=0;i<2;i++)

{ x++;

for(j=0;j<3;j++)

{ if (j%2) continue;

x++;

}

x++;

}

printf(\"x=%d\\n\ }

A) x=4 B) x=8 C) x=6 D) x=12 正确答案是: B 27、

下面程序的功能是:输出100以内能被3整除

且个位数为6的 所有整数,请填空。 #include void main() { int i,j;

for(i=0;______; i++) { j=i*10+6;

if (_______) continue; printf(\"%d \ } }

A) i<=10 B) i<10 j%3!=0 j/3 C) i<10 D) i<=9 j%3!=0 i%3 正确答案是: C

2八、 下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,

其它元素不变。划线处应填________。 #include #include void main()

{ char a[]=\"clanguage\ int i,j,k; k=strlen(a); for(i=0;i<=k-2;i+=2) for(j=i+2;jif(a[i]>a[j])

{t=a[i];a[i]=a[j];a[j]=t;} puts(a); printf(\"\\n\"); }

A) k=k+1 B) k=k+2 C) j+=1 D) j+=2 正确答案是: D

2九、 以下程序的输出结果是________。 #include void main( )

{ int i,p=0,a[10]={1,5,9,0,-3,8,7,0,1,2}; for(i=1;i<10;i++) if(a[i]A) -3,4 B) 0,1 C) 9,2 D) 2,9 正确答案是: A 30、

以下程序的输出结果是________。

#include void main()

{ int i,x[9]={9,8,7,6,5,4,3,2,1};

for(i=0;i<4;i+=2) printf(\"%d \}

A) 5 2 B) 5 1 C) 5 3 D) 9 7 正确答案是: D

3一、 以下程序的输出结果是________。 #include void main()

{ char s[]={\"12134211\

v[4]={0,0,0,0},k,i; for(k=0;s[k];k++) { switch(s[k]) { case '1':i=0; case '2':i=1; case '3':i=2; case '4':i=3; } v[i]++; }

for(k=0;k<4;k++) printf(\"%d \ }

A) 4 2 1 1 B) 0 0 0 8 C) 4 6 7 8 D) 8 8 8 8 正确答案是: B

3二、 以下程序的输出结果是________。 #include void main() {

int

a[4][4]={{1,2,3,4},{3,4,5,6},{5,6,7,8},{7,8,9,10}}; int j,s=0; for(j=0;j<4;j++) s+=a[j][j]; printf(\"%d\\n\ }

A) 36 B) 26 C) 22 D) 20 正确答案是: C 33、

设有以下定义语句:

char

str[4][12]={\"aaa\

下面对字符串的引用正确的选项是________。 A) strp[0][3] B) str[4] C) str[1] D) strp[1][4] 正确答案是: C 34、

定义如下变量和数组:

int i;

int x[3][3]={1,2,3,4,5,6,7,8,9}; 那么下面语句的输出结果是________。

for(i=0;i<3;i++) printf(\"%d \ A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 9 正确答案是: B

3五、 在执行语句: int a[ ][3]={1,2,3,4,5,6}; 后,

a[1][0]的值是________。 A) 4 B) 1 C) 2 D) 5 正确答案是: A

3六、 以下程序执行时输入

Language

Programming<回车>,输出结果是________。 #include void main( ) { char str[30]; scanf(\"%s\

printf(\"str=%s\\n\ }

A) Language Programming B) Language C) str=Language D) str=Language Proguamming

正确答案是: C 37、

有如下程序

#include

long fib(int n)

{ if(n>2) return(fib(n-1)+fib(n-2)); else return (2); } void main()

{ printf(\"%d\\n\ 该程序的输出结果是________。 A) 2 B) 4 C) 6 D) 8 正确答案是: B 3八、 有如下程序 #include int fib(int n)

{ if(n>2) return(fib(n-1)+fib(n-2)); else return (1); } void main()

{ printf(\"%d\\n\ 该程序的输出结果是________。 A) 2 B) 4 C) 6 D) 8 正确答案是: A 3九、 有如下程序 int func(int a,int b) { return(a+b); } void main()

{ int x=2,y=5,z=8,r; r=func((x-y),z); printf(\"%d\\n\ 该程序的输出结果是__________。 A) 10 B) 13 C) 5 D) 15 正确答案是: C 40、

以下函数返回a数组中最小值所在的下标,

在划线处应 填入的是________。 int fun( int a[],int n) { int i,j=0,p; p=j;

for(i=j;iif(a[i]A) i=p B) a[p]=a[i] C) p=j D) p=i 正确答案是: D

4一、 以下程序的输出结果是________。 #include void fun() { static int a=0; a+=2;

printf(\"%d\ void main() { int cc;

for(cc=1;cc<4;cc++) fun( ); printf(\"\\n\"); } A) 2222 B) 2468 C) 222 D) 246 正确答案是: D

4二、 以下所列的各函数首部中,正确的选项是________。

A) void play(var a:Integer,var b:Integer) B) void play(int a,b) C) void play(int a,int b)

D) void play(a as integer,b as integer) 正确答案是: C

43、 以下函数htoi的功能是,将一个十六进制数字的字符串转换成与它等价

的十进制整数值,划线处应填入________。 int htoi( char s[ ]) { int i,n; n=0;

for(i=0;s[i]!= '\\0';i++)

{ if(s[i]>= '0'&&s[i]<='9') n=n*16+s[i]-'0'; if(s[i]>= 'a'&&s[i]<='f') n=____________; if(s[i]>= 'A'&&s[i]<='F')

n=n*16+s[i]-'A'+10; } return (n); }

A) n*16+s[i]-'0' B) n*16+s[i]-'a'; C) n*16+s[i]-'a'+10 D) n*10+s[i]-'a'+10 正确答案是: C 44、

以下函数func()的功能是:使具有n个元素

的一维数组b的每个元素的值 都增加2,划线处应填入________。 func(int b[ ],int n) { int ;

for(i=0;i4五、 以下程序的输出结果是________。 #include int func( char a[ ][5]) { int s=0; int i,j; for(i=0;i<2;i++)

for(j=0;a[i][j]>= '0'&&a[i][j]<= '9';j+=2)

s=10*s+a[i][j]-'0'; return s; } void main( )

{ char ch[2][5]={ \"1234\ printf(\"%d\\n\ A) 1357 B) 123567 C) 12567 D) 12345678 正确答案是: A

因篇幅问题不能全部显示,请点此查看更多更全内容