当前位置:文档之家› 2015武大C语言题库201

2015武大C语言题库201

2015武大C语言题库201
2015武大C语言题库201

第一章

C语言源程序经过编译、链接后生成的可执行文件扩展名是__A____。

(A).exe (B).cpp (C).c (D).obj

C语言程序要正确地运行,必须要有__D____。

(A)printf函数(B)scanf函数(C)自定义的函数(D)main函数

以下均为合法用户标识符的是__D____。

(A)do,xyz,_printf

(B)3a,_tt,IF

(C)void,ff,s_v

(D)_pi,IF,big_tree

以下叙述中正确的是__B____。

(A)C语言程序从源程序中第一个函数开始执行

(B)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束

(C)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行

(D)main可作为用户标识符,用以命名任意一个函数作为主函数

以下叙述中错误的是__C____。

(A)C语言是一种结构化程序设计语言

(B)结构化程序有顺序、选择和循环三种基本结构

(C)使用三种基本结构构成的程序只能解决简单问题

(D)结构化程序设计提倡模块化的设计方法

C语言程序的基本单位是【函数】。

编写C语言源程序时,需要使用【编辑】器将源代码输入到计算机中。

C语言源程序中可以有多处注释。

第二章以下属于合法数据类型关键字的是___C___。

(A)Long (B)shot (C)char (D)doubel

以下不合法的数值常量是___C___。

(A)011 (B)1e1 (C)8.0E0.5 (D)0xabcd

以下正确的字符常量是___D___。

(A)"T" (B)'\\'' (C)' (D)'T'

以下不合法的字符常量是___A___。

(A)"a" (B)'\77' (C)'\n' (D)'\x5c'

表达式3.6-5/2+1.2+5%2的值是___D___。

(A)4.3 (B)4.8 (C)3.3 (D)3.8

以下均是合法常量的是___B___。

(A)038,.5e-6,0xE

(B)12.,0Xc33,3.6e0

(C).17,4e1.5,0ade

(D)0x6A,30_000,3.e7

以下均是非法常量的是___A___。

(A)0x2g,0ff,E5

(B)'\\','\21',12,456

(C)028,04567,0xffff

(D)0xaa,'a',"a"

设有说明语句:int i=5; char c='A'; double d=3.14; ,以下结果为整型的表达式是___B___。(A)i/2+d (B)i/2*c (C)c+d/2 (D)i/2+c+d

若变量均已正确定义并赋值,以下合法的赋值语句是___C___。

(A)x+n=i; (B)x=n%2.5; (C)x=y==5; (D)x=5=4+1;

以下变量说明语句中,合法的是__C____。

(A)float 5_five=3.4; (B)int _xyz=29

(C)double a1=6.2e4; (D)short do=3;

设有说明语句:int x=1; double y=1.0;,以下不符合C语言语法的表达式是___C_____。(A)++x,y=x-- (B)x=(int)(y/3) (C)x=x+10=x+y (D)(double)x/3

设有说明语句:int x,a,b,c; double d=3.14; ,以下不符合C语言语法的表达式是__A____。(A)d%3 (B)d+=-1

(C)x=(a=-1,b=-3,a*b) (D)a+=(a=3)*(b=2)*(c=1)

以下能正确定义且赋初值的语句是___B___。

(A)int n1=n2=-1; (B)char c=32;

(C)float f; (D)double x=12.3E2.5;

设有说明语句:char s="AA"; ,下面说法正确的是__D____。

(A)变量s中包含1个字符(B)变量s中包含2个字符

(C)变量s中包含3个字符(D)说明语句不合法

设有说明语句:int i=2; ,以下选项的四个表达式中与其他三个表达式的值不相同的是___A___。(A)i++ (B)i+=1 (C)++i (D)i+1

若变量均已正确定义并赋值,以下合法的赋值表达式是___B___。

(A)x=3+b=x+3 (B)x=(b=x+3,3+b)

(C)x=3+b,b++,x+3 (D)x+=3=x+3

若已定义x和y为double类型,表达式(x=1,y=x+3/2)的值是___C___。

(A)1 (B)2 (C)2.0 (D)2.5

与数学式子2乘以y的n次方除以(2x+1)对应的C语言表达式是___C___。

(A)2*y^n/(2*x+1) (B)2*y**n/(2*x+1)

(C)2*pow(y,n)/(2*x+1) (D)2*pow(n,y)/(2*x+1) 设有说明语句:int k=7,x=12; ,以下表达式中值为3的是___D___。

(A)x=k%5 (B)x%=(k-k%5)

(C)x%=k-k%5 (D)x=5-(k%=5)

设有说明语句:int n=7,i=3; ,执行赋值运算n%=i+1后,变量n的值是___D___。

(A)0 (B)1 (C)2 (D)3

以下与k=i++完全等价的表达式是___B___。

(A)i=i+1,k=i (B)k=i,i=i+1

(C)k=++i (D)k+=i+1

能正确表示数学关系:“-5≤a≤5”的C语言表达式是___C___。

(A)a>=-5 and a<=5 (B)a>=-5 or a<=5

(C)a>=-5 && a<=5 (D)a>=-5 || a<=5

以下选项中,当k为大于1的奇数时,值为0的表达式___D___。

(A)k%2==1 (B)k/2 (C)k%2!=0 (D)k%2==0

若变量均已正确定义并赋值,以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是____C____。

(A)(x-y>0) (B)(x-y<0)

(C)(x-y<0 || x-y>0) (D)(x-y==0)

已知大写字母'A'的ASCII码是65,小写字母'a'的ASCII码是97,则字符常量'\101'是___A___。(A)字符'A' (B)字符'a' (C)字符'e' (D)非法的常量

设有说明语句:int i; float f; double d; ,表达式5-2*i+d/f值的数据类型为【 double 】。

设有说明语句:char k='\77'; ,变量k中包含【 1 】个字符。

C语言中的基本数据类型包括整型、实型和【字符型】。

已知大写字母'A'的ASCII码是65,若变量k是int类型,则执行了语句:k='A'+2.8; 后变量k 的值是【67 】。

字符串"A\x11T\101C"的长度是【5 】。

设有说明语句:int k=5; double t; ,执行语句t=(double)k;之后,变量k的数据类型是【 int 】。

表达式2+sqrt(4)值的数据类型为【double 】。

在Visual C++ 6.0环境中,一个char型变量在内存中占【 1 】个字节,一个int型变量在内存中占【 4】个字节,一个double型变量在内存中占【 8 】个字节。

若变量x、y均为int型,则表达式(x=3,x+3,y=3,x+y)的值是【 6 】,表达式y=(y=3,x=y,x+3)的值是【 6 】。

第三章

设有说明语句:double x=123.56; ,对于语句printf("%-8.2e\n",x); ,以下说法正确的是___B___。(A)输出为-1.24e+002

(B)输出为1.24e+002

(C)输出为12.36e+001

(D)输出格式描述符的域宽不够,不能输出

printf函数被称为___C___输出函数。

(A)字符(B)整数(C)格式(D)浮点

scanf函数是一个___A___函数。

(A)标准库(B)用户定义(C)无参(D)地址

getchar函数的原型声明包括在头文件___D___中。

(A)string.h (B)math.h (C)conio.h (D)stdio.h

在printf函数的"格式控制字符串"中,%5d表示___A___。

(A)输出宽度为5 (B)输出5个数

(C)输出数据时保留5位小数(D)输出5个d 设有说明语句:double x; ,下列选项中正确的是___D___。

(A)scanf("%d",&x); (B)scanf("%f",&x);

(C)scanf("%lf",x); (D)scanf("%lf",&x);

对语句scanf("%c%c%c",&x,&y,&z);和语句scanf("%c,%c,%c",&x,&y,&z);的输入,以下说法正确的是___C___。

(A)都以空格作为间隔

(B)前者以空格作为间隔,后者以逗号作为间隔

(C)前者不以空格作为间隔,后者以逗号作为间隔

(D)都以逗号作为间隔

以下程序段的输出结果是(符号□表示空格)__B____。

double x=3.14;

printf("|%5.0f|\n",x);

(A)|3.14□|(B)|□□□□3|(C)|□□3.0|(D)|□□□3.|

语句printf("x=%10.5f\n",12345.678);的输出结果是___D___。

(A)x=2345.67800 (B)x=12345.6780

(C)x=12345.678 (D)x=12345.67800

对于如下程序段:

int x=2010,y=2012;

printf("%d\n",(x,y));

以下叙述中正确的是___B___。

(A)输出结果为:2002

(B)输出结果为:2012

(C)输出结果不确定

(D)运行时产生出错信息

以下程序运行时,若输入数据为:11 11,则输出结果是___B___。

#include

void main()

{ int x,y;

scanf("%d%o",&x,&y);

y+=x;

printf("%d\n",y);

}

(A)22 (B)20 (C)18 (D)11

设有说明语句:int x=3,y=5; ,以下不合法的赋值语句是___D___。

(A)x*=3; (B) x/=y; (C) x+=3; (D) x||=y;

设有说明语句:int x; ,执行语句x=10; x+=x-=x;后,变量x的值为___A___。

(A)0 (B)10 (C)20 (D)30

设有说明语句:int i,j; char c; ,若要通过语句scanf("%d%c%d",&i,&c,&j); 使变量i,j得到数值8,变量c得到字符'A',正确的输入是(符号□表示空格)___D___。

(A)8,A,8 (B)8□A□8(C)8□A8(D)8A8

设有说明语句:int i,j ,若从键盘给i、j输入数据,以下不正确的输入语句是___D___。(A)scanf("%d%d",&i,&j);

(B)scanf("%dW%d",&i,&j);

(C)scanf("%d,%d",&i,&j);

(D)scanf("%d%d",i,j);

设有说明语句:float x,y,z; ,要通过语句scanf("%f%f%f",&x,&y,&z);给x赋值11.0,y赋值22.0,z赋值33.0,以下不正确的输入形式是___B___。

(A)11.0<回车>

22.0<回车>

33.0<回车>

(B)11.0,22.0,33.0<回车>

(C)11.0<回车>

22.0 33.0<回车>

(D)11 22<回车>

33<回车> 有程序段:

int i;

float f;

char name[20];

scanf("%2d%f%s", &i, &f, name);

若从键盘上输入566777abc 后,变量f的值是___B___。

(A)566777.0 (B)6777.0 (C)777.0 (D)0.0

设有说明语句:char c; ,不能用于判断变量c中的字符是否为大写字母的表达式是___B___。(A)isupper(c) (B)'A'<=c<='Z'

(C)'A'<=c&&c<='Z' (D)(c<='z'-32)&&('a'-32<=c)

已知字符大写字母'A'的ASCII码是65,设有说明语句:char c1='A',c2='D'; ,则语句printf("%d,%d\n",c1,c2-2); 的输出结果是___C___。

(A)A,B (B)A,68 (C)65,66 (D)65,68

设有说明语句:int x=1; ,语句printf("%d\n",-x++);的输出结果是___A___。

(A)-1 (B)0 (C)1 (D)2

以下表达式中,不能将字符变量c中的大写字母转换为对应小写字母的是___D___。

(A)c=(c-'A')%26+'a' (B)c=c+32

(C)c=c-'A'+'a' (D)c=('A'+c)%26-'a'

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

#include

void main()

{ int a=0,b=0;

a=10; /*给a赋值

b=20; 给b赋值 */

printf("a+b=%d\n",a+b);

}

(A)a+b=10 (B)a+b=30 (C)10 (D)30

若要求从键盘读入含有空格字符的字符串,应使用函数___B___。

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

以下四个程序中,完全正确的是___B___。

(A)#include

void main();

{ /*programming*/

printf("programming!\n");

}

(B)#include

void main()

{ /*/ programming /*/

printf("programming!\n");

}

(C)#include

void main()

{ /*/*programming*/*/

printf("programming!\n");

}

(D)include

void main()

{ /*programming*/

printf("programming!\n");

}

以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错,出错的原因是___D___。

#include

void main()

{ /* Beginning */

int r; float s;

scanf("%d",&r);

s=pi*r*r;

printf("s=%f\n",s); }

(A)注释语句书写位置错误(B)存放圆半径的变量r不应该定义为整型

(C)输出语句中格式描述符非法(D)计算圆面积的赋值语句中使用了非法变量

设有说明语句:int k=1,m=2; double d=7.3; ,以下表达式中错误的是___A___。

(A)k>=m=k (B)k++ (C)k%(int)d (D)d>m>k

设有说明语句:int a=2,b=3,c=4; ,以下选项中值为0的表达式是___A___。

(A)(!a==1)&&(!b==0) (B)(a

(C)a&&b (D)a||(b+b)&&(c-a)

执行以下程序段后,变量k的值是___D___。

int k=0,c=3;

k=(k>c?c:k);

(A)3 (B)2 (C)1 (D)0

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

#include

void main( )

{

int x=102,y=012;

printf("%2d,%2d\n",x,y);

}

(A)10,01 (B)02,12 (C)102,10 (D)102,12

以下4个选项中,不能看作一条语句的是___D___。

(A){;} (B)a=0,b=0,c=0;

(C)if(a>0); (D)if(b==0) m=1;n=2;

已知大写字母'A'的ACSII码是65,设有说明语句:char ch='B'; ,则语句printf("%c,%d",ch,ch);的输出结果是【 B,66 】

以下程序运行后的输出结果是【 25,37 】。

#include

void main()

{ int a,b;

a=25;

b=0x25;

printf("%d,%d",a,b);

}

以下程序运行后的输出结果是【 88 】。

#include

void main()

{ int x=0210;

printf("%X",x);

}

以下程序运行后的输出结果是【 2 】。

#include

void main()

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

if(a) printf("%d",b);

else printf("%d",c);

}

若在运行以下程序时输入:1234567<回车>,则输出结果是【12,34 】。 #include < stdio.h >

void main()

{ int a=1,b;

scanf("%2d%2d",&a,&b);

printf("%d,%d",a,b);

}

以下程序运行后的输出结果是【Z 】。

#include void main()

{ char c='A';

printf("%c",c+25);

}

若在运行以下程序时输入:65 65<回车>,则输出结果是【 6,5,A 】。

#include

void main()

{

char a,b,c;

scanf("%c%c%d",&a,&b,&c);

printf("%c,%c,%c",a,b,c);

}

以下程序运行后的输出结果是【 3,3.00 】。

#include

void main()

{

double d;

int i;

d=i=10/3;

printf("%d,%.2f",i,d);

}

以下程序运行后的输出结果是【 Visual C++,Visual 】。

#include

void main()

{

printf("%s,%.6s","Visual C++","Visual C++");

}

设有说明语句:double d=11.555; ,语句printf("d=%.1f;",d);的输出结果是【 d=11.6; 】。

A 以下程序运行后的输出结果是:16,20。

#include

void main()

{

int x=016,y=16;

printf("%o,%o",x,y);

}

A 以下程序运行后的输出结果是:i=5,d=5.50。

#include

void main()

{

int i=5;

double d=5.5;

printf("i=%d,d=%.2f",i,d);

}

B 设有说明语句:int a,b; ,对于语句scanf("%d%*d%d",&a,&b); ,当输入为:1□2□3时(符号□表示空格),将1赋给a,将2赋给b。

B 语句printf("%4d",123456789);的输出结果是:1234 。

B printf函数中的格式字符,不必区分大小写。

A a+=a=2;是一条合法的赋值语句,赋值后a的值为4。

B 以下程序运行时,若输入字母'g',则输出结果是:a。

#include

void main()

{

char c1;

c1=getchar();

printf("%c",c1-5);

}

A 以下程序运行时,若输入数据为666666,则输出结果是:i=66,c=6。

#include

void main()

{ int i;

char c;

scanf("%2d%4c",&i,&c);

printf("i=%d,c=%c",i,c);

}

A scanf函数的功能是按格式控制字符串规定的格式,从指定的输入设备上输入数据。

A scanf函数中的地址表列是由地址项组成的。

第四章

判断字符型变量c1是否为大写字母的正确表达式为___B___。

(A) 'Z'<=c1<='Z' (B) (c1>='A') &&(c1<='Z')

(C) ('A'>=c1)||('Z'<=c1) (D) (c1>='a')&&(c1<='Z')

已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是___C___。

(A) 0 (B)语法错(C) 1 (D)“假”

设a=3,b=4,c=5,则逻辑表达式"!(a+b)*c-1&&b+c%2"的值是___C___。

(A) -1 (B) 0 (C) 1 (D) 2

请从以下表达式中选出a为偶数时值为0的表达式___D___。

(A) a%2==0 (B) !a%2!=0 (C) a/2*2-2==0 (D) a%2

能正确表示a和b同时为正或同时为负的逻辑表达式是___D___。

(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

能正确表示逻辑关系:"0≤a≤10"的C语言表达式是___C___。

(A) 0<=a<=10 (B) a>=0,a<=10

(C) a>=0 &&a<=10 (D) a>=0‖a<=10

对y在[3,23]或[100,200]范围内为真的表达式为___C___。

(A) (y>=3)&&(y<=23)&&(y>=100)&&(y<=200)

(B) (y>=3)||(y<=23)||(y>=100)||(y<=200)

(C) (y>=3)&&(y<=23)||(y>=100)&&(y<=200)

(D) (y>=3)||(y<=23)&&(y>=100)||(y<=200)

在C语言中,if语句后的一对圆括号中,用以决定分支流程的表达式___D___。(A)只能用逻辑表达式(B)只能用逻辑表达式或关系表达式

(C)只能用关系表达式(D)可用任意表达式

为避免嵌套的条件语句if-else的二义性,C语言规定:else与___B___配对。(A)缩排位置相同的if (B)其之前最近的if

(C)其之后最近if (D)同一行上的if

下列运算符中优先级最低的是___A___。

(A) *= (B) && (C) + (D) !=

设ch是字符型变量,其值为A,且有下面的表达式:

ch=!(ch>='A'&&ch<='z')?ch:(ch+32),则表达式的值是___B___。

(A) A (B) a (C) 2 (D) z

设ch是字符型变量,其值为b,且有下面的表达式:

ch!=(ch>='a'&&ch<='z')?ch:(ch-32),则表达式的值是___B___。

(A) B (B) b (C) 1 (D) 0

设a=4,b=3,c=2,d=1,则表达式a

(A) 4 (B) 3 (C) 2 (D) 1

能正确表示a、b不能同时为零的逻辑表达式是___A___。

(A) a==0&&b!=0||a!=0&&b==0

(B) (a==0)||(b==0)

(C) (a!=0)||(b!=0)

(D) a*b==0 读程序,程序运行结果是【 B 】。

#include

void main()

{ int a=5,b=4,c=3,d=2;

if (a>b>c) printf("%d\n", d);

else if ( (c-1>=d) ==1) printf("%d\n", d+1);

else printf("%d\n", d+2);

}

(A) 2 (B) 3 (C)4 (D)5

表达式2<3&&8<=(a=10)的结果是___B___。

(A) 0

(B) 1

(C) False

(D) True

若i为整型变量,且有程序段如下,则输出结果是___B___。

i=122;

if(i%2) printf("####");

else printf("****");

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

(C) ####**** (D)有语法错误, 无输出结果

若变量都已正确说明,则以下程序段输出为___A___。

int a=2,b=1,c,d;

if (a==b) c=d=a;

else c=b;

d=b;

printf("c=%d,d=%d",c,d);

(A) c=1,d=1 (B) c=1,d=2 (C) c=2,d=1 (D) c=2,d=2

请阅读以下程序:

# include

void main()

{ int a=2,b=0,c=0;

if(a=b+c) printf("###");

else printf("&&&"); } 以上程序___C___。

(A)有语法错不能通过编译(B)可以通过编译但不能连接(C)输出&&& (D)输出###

以下___B___为不正确的if语句。

(A) if(x

(B) if(x!=y) scanf("%d",&x) else scanf("%d",&y); (C) if(x==y) x+=y;

(D) if(x

读程序,程序运行结果是【 C 】。

#include

void main ( )

{ int m=5;

if (m++>5) printf("%d\n",m);

else printf("%d\n",m--); }

(A) 4 (B) 5 (C)6 (D) 7

设int a = 2,b = 3, x = 1;则执行语句

if (a>2)

if (b>2)

x = 2 ;

else x = 3;

后 x 的值是___B___。

(A) 0 (B) 1 (C) 2 (D) 3

以下if语句语法正确的是___A___。

(A) if (x>0) (B) if (x>0) printf ( "%f ",-x ) { x=x+y; printf ("%f ", x);} else printf ("%f",-x);

else printf ("%f ", -x);

(C) if (x>0) (D) if(x>0) {x=x+y ; printf ("%f ", x);}; { x=x+y ; printf ("%f", x)} else printf ("%f", -x) ; else printf ("%f", -x);

读程序,程序运行结果是【 B 】。

# include

void main()

{ int i=0, j=0, k=6;

if ((++i>0)||(++j>0)) k++;

printf("%d, %d, %d\n", i, j, k);

}

(A) 1, 0, 6 (B) 1, 0, 7

(C) 1, 1, 6 (D) 1, 1, 7

读程序,程序运行结果是【 A 】。

#include

void main()

{ int x=1,a=0,b=0;

switch(x)

{ case 0: b++;

case 1: a++;

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

printf("a=%d,b=%d\n",a,b);

}

(A) a=2,b=1 (B) a=2,b=2

(C) a=1,b=2 (D) a=1,b=1

与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是___A___。(A) if (x>0) y=1; (B) if(x)

else if(x<0)y=-1; if(x>0)y=1;

else y=0; else if(x<0)y=-1;

(C) y=-1; (D) y=0;

if(x) if(x>=0)

if(x>0)y=1; if(x>0)y=1;

else if(x==0)y=0; else y=-1;

else y=-1;

第四章

读程序,程序运行结果是【 B 】。

#include

void main()

{ float x=2.0,y;

if(x<0.0) y=0.0;

else if(x<5.0) y=1.0/x;

else y=1.0;

printf("%4.1f\n",y);

}

(A) 0.0 (B) 0.5

(C) 1.0 (D)不确定

以下程序段中不能根据x值正确计算出y值的是___C___。

(A) if(x>0) y=1; (B) y=0;

else if(x==0) y=0; if(x>0) y=1;

else y=-1; else if(x<0) y=-1 ;

(C) y=0; (D) if(x>=0)

if(x>=0); if(x>0) y=1;

if(x>0) y=1 ; else y=0;

else y=-1; else y=-1;

以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是___A___。(A) if((a>b)&&(b>c)) k=1; (B) if((a>b)||(b>c)) k=1

else k=0; else k=0; (C) if(a<=b) k=0; (D) if(a>b) k=1;

else if(b<=c) k=1; else if(b>c) k=1;

else k=0;

假定w、x、y、z、m均为int型变量,有如下程序段:

w=1; x=2; y=3; z=4;

m=(w

则该程序运行后,m的值是___D___。

(A) 4 (B) 3 (C) 2 (D) 1

若有条件表达式(expression) ?a++:b--,则以下表达式中能完全等价于表达式(expression)的是___B___。

(A) (expression==0) (B) (expression!=0)

(C) (expression==1) (D) (expression!=1)

若有以下定义: float x;int a,b;则正确的switch 语句是___D___。

(A) switch(x) (B) switch(x)

{ case 1.0:printf("*\n"); { case 1:printf("*\n");

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

(C) switch (a+b) (D) switch (a+b);

{ case 1,2:printf("*\n"); { case 1:case 2: printf("*\n");

}

已知a=2.5,b=2,c=3.6,表达式a>b&&c>a || ab的值是【 1 】。

表示"整数x的绝对值大于2"时值为"真"的C语言表达式是【 x>2||x<-2 】。

C语言提供的三种逻辑运算符是&& 、||和【 ! 】。

已知a=3,b=-4,c=5,表达式!(a>b)+(b!=c)||(a+b)&&(b-c)的值是【 1 】。

表达式(3+a)(b+8)+sin45°≤lnx的C语言表达式是【 (3+a)*(b+8)+sin(45)<=log(x) 】。表达式0≤a≤5且a≠3的C语言表达式是【 (0<=a&&a<=5)&&(a!=3) 】。

以下程序对输入的一个小写字母,将字母循环后移5个位置后输出。如'a'变成'f','w'变成'b'。请在空中填入正确内容。

#include

void main()

{ char c; c=getchar();

if(c>='a'&&a<='u') 【 c=c+5 】;

else if(c>='v'&&c<='z') c=c-21;

putchar(c); }

阅读下面程序:

#include

void main()

{ int s, t, a, b;

scanf("%d%d",&a, &b);

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("s=%d, t=%d", s, t); }

为了使输出结果t=4, 输入量a和b应满足的条件是【 b>a>0 】。

以下程序运行后的输出结果是【 3 】。

#include

void main( )

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

if (a)

{ if (b<0) c=0; }

else c++ ;

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

}

运行下面的程序,从键盘上输入3,

#include void main()

{ int x; scanf("%d",&x);

if(x>5)printf("%d",x);

else printf("%d\n",x--);

}

程序运行结果是【 3 】。

读程序,程序运行结果是【 'c' 】。

#include

void main()

{ char m='b';

if(m++> 'b') printf(" %c\n",m);

else printf("%c\n",m--); }

读程序,运行时输入2.0(回车)

#include

void main()

{ float a,b; scanf("%f",&a);

if (a>10.0) b=1.0/a;

else if((a<0.5)&&(a!=2.0))b= 1.0/(a+2.0);

else if(a<10.0) b= 1.0/a ;

else b=10.0;

printf("%f\n",b);

}

程序运行结果是【 0.500000 】。

B switch选择结构中必须有default子句。

B 如果x>y或ay&&a

A 假定变量x,y,z在说明时已赋初值,则if ((x=y+5)>0) z=x;是正确的。

B int a=1,b=0,c=1;,则!(a+b)+c-0&&b+c/2的值为1。

B 语句if(a) x=1;与 if(a==0)x=1;等价。

A if (x>0) {x=x+y ; printf ("%f ", x);} else printf ("%f", -x) ; 语句语法是正确的。

A if语句后面的表达式并不限于是关系表达式或逻辑表达式,而可以是任意表达式。if语句中可以再嵌套if语句。

A !b==c||d

B 5>0 && 4>2的结果为假。

A a&&b&&c逻辑表达式中,当a为假时将不再计算b和c的值了。

第五章

执行程序段: x=-1; do { x=x*x;} while(!x); 的结果是___C___。

(A)死循环(B)循环执行2次(C)循环执行一次(D)有语法错误

有以下程序:

#include

void main()

{ while(putchar(getchar())!='?'); }

当输入"hello?"时,程序的执行结果是___D___。

(A)hello (B)dijob (C)dijob? (D)hello?

以下程序的输出为__D____。

#include

void main( ) { int y=5; while (y--); printf ("y=%d\n", y);}

(A)y=0 (B)无限循环,无结果输出(C)y=1 (D)y=-1

设有程序段: int x=0,s=0; while(x!=0) s+=++x; printf("%d",s); ,则运行程序段后__A____。(A)输出0 (B)输出1 (C)控制表达式是非法的(D)执行无限次

设有程序段: int k=10; while(k=0) k=k-1; ,则下面描述正确的是___C___。(A)while 循环执行10次(B)循环是无限循环

(C)循环体语句一次也不执行(D)循环体语句执行一次

C语言的do-while循环中,循环由do开始,用while结束;而且在while表达式后面的___B___不能丢,它表示do-while循环的结束。

(A)\n (B)“;”(C)“%”(D)“,”

以下能正确计算1×2×3×4...×10的程序段是___C___。

(A)do {i=1; s=1; s=s*i; i++;} while(i<=10); (B)do {i=1; s=0; s=s*i; i++;} while(i<=10); (C)i=1; s=1; do {s=s*i; i++;} while(i<=10); (D)i=1; s=0; do {s=s*i; i++;} while(i<=10);

以下描述中正确的是___C___。

(A)由于do-while循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。(B)do-while循环由do开始,用while结束,因此在while(表达式)后无需加分号。(C)在do-while循环体中,一定要有能使while后面表达式的值变为“假”的操作。(D)do-while循环中,根据情况可以省略while。

下面程序段的输出结果是___D___。

int x=3;

do{printf("%3d",x-=2);} while(!(--x));

(A)1 2 (B)3 2 (C)2 3 (D)1 -2

C语言的for语句中的表达式可以部分或全部省略,但两个___C___不可省略。当三个表达式均省略后,因缺少判断条件,循环可能会无限制地进行下去,形成死循环。

(A)“<”(B)“++”(C)“;”(D)“,”

对于for(表达式;;表达式3)可理解为___B___。

(A)for(表达式;0;表达式3) (B)for(表达式;1;表达式3)

(C)for(表达式;表达式1;表达式3) (D)for(表达式;表达式3;表达式3)

若i为整型变量,则以下循环执行的次数是___B___。

for(i=2;i==0;) printf("%d",i--);

(A)无限次(B)0次(C)1次(D)2次

以下for循环的执行次数是___C___。

for(x=0,y=0;(y=3)&&(x<4);x++,y++);

(A)是无限循环(B)循环次数不定(C)执行4次(D)执行3次

设i为整型量,执行循环语句for(i=50;i>=0;i-=10);后,i值为___A___。

(A)-10 (B)0 (C)10 (D)50

下面有关for循环的正确描述是___D___。

(A)for循环只能用于循环次数已经确定的情况。(B)for循环是先执行循环体语句,后判断表达式。

(C)在for循环中,不能用break语句跳出循环体。(D)for循环的循环体语句中,可以包含多条语句,但要用花括号括起来。

下面有关for循环的正确描述是___A___。

(A)for语句的三个表达式都是可以省略的,但分号“;”绝对不能省略。(B)for语句的三个表达式都是可以省略的,可以写成for( )。

(C)在for语句中,至少会执行循环体语句一次。(D)for(;;) ; 是一条语法上错误的语句。

在下列选项中,没有构成死循环的程序段是___C___。

(A)int i=100; while (1) {i=i%100+1; if(i>100)break;} (B)for(;;);

(C)int k=1000; do{--k;} while (k); (D)int s=36; while(s>=0) ; --s; 以下程序段的输出结果是___A___。

int x,i;

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

{ x=i;

if (++x%2==0)

if (++x%3==0)

if (++x%7==0)

printf("%d ",x);}

(A)25 67 (B)26 68 (C)27 69 (D)28 70

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

#include

void main( ) {

int i=2;

for ( ;i<=10; )

{ i++;

if (i%3==0) printf("%d ",i);

else continue;}

}

(A)3 (B)3 6 (C)3 6 9 (D)3 6 9 10

以下正确的描述是___B___。

(A)continue语句的作用是结束整个循环的执行。(B)只能在循环体内和switch语句内使用break语句。

(C)在循环体内,使用break语句和使用continue语句的作用是相同的。(D)从多层循环嵌套中退出时,只能使用goto语句。

下面程序段,___D___。

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

{ scanf("%d",&x);

if (x<0) continue;

printf("%3d",t);

}

(A)当x<0时整个循环结束(B)当x>=0时什么也不输出

(C)printf函数永远也不执行(D)最多允许输出100个非负整数

以下为死循环的程序段是___C___。

(A)for(i=1; ; ) {if (++i%2==0) continue; if (++i%3==0) break; }

(B)short int i; i=100; do { if (i<0) break;} while(++i);

(C)for(i=1; ; ) if (++i<10) continue;

(D)i=100; while(i--);

以下程序输出结果为___D___。

#include

void main()

{ int i,b,k=0;

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

{ b=i%3;

while (b-->=0) k++;

}

printf("%d,%d\n",k,b);

}

(A)3,-1 (B)6,-1 (C)3,0 (D)6,-2

以下描述正确的是___C___。

(A)goto语句只能用于退出多层循环。(B)switch语句中不能出现continue语句。(C)只能用continue语句来终止本次循环。(D)在循环中break语句不能独立出现。

以下不正确的描述是___B___。(A)break语句不能用于循环语句和switch语句外的任何其他语句。

(B)在switch语句中使用break语句或continue语句的作用相同。

(C)在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环的执行。(D)在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环。

以下叙述正确的是___C___。

(A)for循环中的break; 语句表示:当条件成立时中止程序执行。

(B)for循环中的continue; 语句表示:当条件成立时中止本层循环。

(C)for循环中的break; 语句表示:当条件成立时中止本层循环。

(D)for循环中的break; 语句表示:当条件成立时暂停本次循环。

下面程序的运行结果是___C___。

#include

void main()

{ int i,j,x=0;

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

{

x++;

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

{ if(j%2) continue;

x++; }

x++;

}

printf("x=%d\n",x);

}

(A)x=6 (B)x=8 (C)x=10 (D)x=12

下面程序段输出的i值是___C___。

#include

void main()

{ int i;

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

if((i*i>=130)&(i*i<=180))break;

printf("%d\n",i);

}

(A)10 (B)11 (C)12 (D)13

下面程序段在执行完成后,a的值为:___C___。

int j=0,k=0,a=0;

while(j<3)

{

j++; a=a+1; k=0;

while(k<=2)

{ k++;

if(k%2!=0) continue;

a=a+1;

}

a=a+1; }

(A)6 (B)8 (C)9 (D)10 >>>

下面程序的运行结果是____4 _______。

#include

void main()

{ int a=0;

while(a*a*a<=50)

++a; printf("%d\n",a);

}

当运行下面程序时,从键盘键入Hello?<回车>,则下面程序的运行结果是【 Ifmmp 】。#include

void main()

{char c;

while((c=getchar())!='?')

putchar(++c);

}

执行下面程序后,k值是【 40 】。

#include

void main()

{ int k=1,n=452;

do {

k*=n%10; n/=10;

} while(n);

printf("%d\n",k);

}

当运行以下程序时,从键盘键入1 2 3 4 5 -1 <回车>,则下面程序的运行结果是

【 k=14 n=-1 】。

#include

void main()

{ int k=0,n; do { scanf("%d",&n); k+=n; } while(n!=-1); printf("k=%d n=%d\n",k,n); }

以下程序输出结果为【 10 】。

#include"stdio.h"

void main()

{ int i; for(i=0;i<10;i++); printf("%d",i); }

下面程序的运行结果是【55 】。

#include

void main()

{ int a=0,i;for(i=1;i<=5;i++) a+=i*i;printf("%d\n",a); }

下列程序的输出结果为【 x=6 】。

#include

void main()

{ int i,j,x=0;

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

{if(i%3==2) break; x++; for(j=0;j<4;j++) { if(j%2) break; x++; } x++; } printf("x=%d\n",x);

}

设x和y均为int型变量,则执行以下的循环后,y值为【 6 】。

for(y=1,x=1;y<=50;y++)

{ if(x>=10) break;

if (x%2==1){ x+=5; continue;}

x-=3;

} 在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为【 abcDEF 】。

#include

void main()

{char ch;

while((ch=getchar( ))!='\n')

{if(ch>='A' && ch<='Z') ch=ch+32;

else if(ch>='a'&&ch<'z') ch=ch-32;printf("%c",ch);}

printf("\n");

}

运行以下程序后,如果从键盘上输入student#<回车>,则输出结果为【 7,7 】。

#include

void main()

{ int v1=0,v2=0; char ch;

while((ch=getchar( ))!='#')

switch(ch){case 'd':case 't':default: v1++;case 'a': v2++;}

printf("%d,%d\n",v1,v2);}

运行下面程序后,输出结果为【 6 】。

#include

void main()

{ int i,j,m=0;

for(i=1;i<=10;i+=4)

for(j=3;j<=10;j+=4) m++;

printf("%d\n",m);

}

下面程序的功能是将从键盘上输入的一对数,由小到大排序输出。当输入一对相等数时结束循环。请将程序补充完整。

#include

void main()

{ int a,b,t; scanf("%d%d",&a,&b);

while(【 a!=b 】)

{ if (a>b) {t=a;a=b;b=t;}

printf("%d,%d\n",a,b);

scanf("%d%d",&a,&b);

}

}

下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A,z变成B。请将程序补充完整。

#include

void main()

{ char c;

while ((c=getchar())!='\n')

{ if (c>='a' && c<='z') 【 c-=30 】;

if (c>'Z' && c<='Z'+2) 【 c-=26 】;

printf("%c\n",c);

}

}

下面程序的功能是从键盘输入的一组字符中分别统计出大写和小写字母的个数,当输入换行符时结束输入。请将程序补充完整。

#include

void main()

{ int m=0,n=0; char c;

while ( (【 c=getchar() 】)!='\n')

{ if (c>='A' && c<='Z') m++;

if (c>='a' && c<='z') n++;

}

printf("m=%d,n=%d\n",m,n);

}

下面程序段是从键盘输入的字符中统计数字字符个数,用换行符结束循环。请将程序补充完整。int n=0,c; c=getchar();

while(【 c!='\n' 】)

{ if(【 c>='0'&&c<='9' 】) n++;

c=getchar();

}

下面程序的功能是计算1-3+5-7+...-99+101的值。请将程序补充完整。

#include

void main()

{ int i,t=1,s=0;

for(i=1;i<=101;i+=2) {【 t=t*i 】; s+=t;【t=-t/i 】;}

printf("%d\n",s);

}

鸡兔共有30只,脚共有90个,下面程序是计算鸡兔各有多少只。请将程序补充完整。

#include

void main()

{ int x,y;

for(x=1;x<=29;x++)

{y=30-x; if (【 x*2+y*4==90 】)printf("%d,%d\n",x,y);}

}

下面程序的功能是从3个红球、5个白球、6个黑球中任意取出8个球,且其中必须有白球,输出所有的方案。请将程序补充完整。

#include

void main()

{ int i,j,k; printf("\n 红白黑 \n");

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

for(【 j=1 】;j<=5;j++)

{ k=8-i-j;

if (【 k>=0&&k<=6 】)

printf(" %3d %3d %3d \n",i,j,k);

}

}

下面程序的功能是用do-while 语句求1-1000之间满足“用3除余2、用5除余3、用7除余2”的数,且一行只打印5个数。请将程序补充完整。

#include

void main()

{int i=1,j=0;

do {if (【i%3==2&&i%5==3&&i%7==2 】)

{ printf("%4d",i); j=j+1;

if (【 j%5==0 】) printf("\n"); }

i=i+1;

}while(i<1000);

}

B while语句do-while语句无论什么情况下,二者的执行结果都一样。

A C语言的while、do-while和for几个循环语句,可以相互嵌套。

B 用do-while语句构成循环时,只有在while后的表达式为非0时结束循环。

B 要使for(表达式1;表达式2;表达式3){循环体}不形成死循环,表达式2一定不能省略。

A while循环的while()后没有分号,而do-while循环的while()后一定要有一个分号。

B continue语句的功能就是结束本层循环。

A 对用goto语句和if语句构成的循环,不能用break语句和continue语句进行控制。

A break语句不能用于循环语句和switch语句之外的任何其它语句。

B 在多层循环嵌套中,可以共用一个continue结束各层的本次循环。

B 三种循环(for循环、while循环和do-while循环)可以互相嵌套,但必须使用相同的循环控制变量。

第六章

在VC6.0中有定义语句:short int a[15]; 则数组a占用的字节数是____B____。

(A) 15 (B) 30 (C) 60 (D) 120

若有数组定义语句:int a[3]={6}; float b[3]; double c[3]={1.2,-56.7,38}; 则以下判断哪一个不成立____C____。

(A) a[0]的初值为6 (B) c[1]的初值为-56.7

(C) b[1]的初值为0 (D) b[0]的初值为随机值

有定义语句:int i; double a[4]; 若通过键盘输入为数组a的4个元素赋值,输入时不同数据之间使用默认分隔符,则下面正确的输入语句是____A____。

(A) for(i=0;i<4;i++) scanf("%lf",&a[i]);

(B) for(i=0;i<4;i++) scanf("%f",&a[i]);

(C) for(i=0;i<4;i++) scanf("%lf\n",&a[i]);

(D) for(i=0;i<4;i++) scanf("%f,",&a[i]);

若有数组定义语句:int a[][3]={{2},{4,5},{6,8,9}},b[][3]={2,4,5,6,8,9}; 则a[1][2]和b[1][2]的初值分别为____D____。

(A)5,4 (B) 0,4 (C) 随机值,9 (D) 0,9

以下二维数组定义中正确的是____C____。

(A) int a[][4];

(B) float b[3][];

(C) #define N 5.6

double c[(int)N][3];

(D) #define N 3

double d[N++][5];

已知以下程序段的运行结果为“6 5 4 3 2 1”,则下划线所在位置应填入的代码是____A____。#define N 6

int a[N]={1,2,3,4,5,6},i,t;

for(i=0;i<________;i++) {t=a[i]; a[i]=a[N-i-1];a[N-i-1]=t;}

for(i=0;i

(A)N/2 (B) N (C) N/2+1 (D) N+1

在VC6.0中定义二维数组并初始化:int a[][3]={1,2,3,4,5,6,7}; 则以下判断中不正确的是

____D____。

(A) 数组a包含9个元素 (B) a[1][2]的初值为6

(C) a[2][2]的初值为0 (D) 在程序中引用a[2][3]会导致编译错误

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

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

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

s+=a[i][i]+a[i][3-i];

printf("%d\n",s); 1+3+5+6+7+10

(A) 20 (B) 32 (C) 12 (D) 随机值

若有定义语句:int a[10]={1,2,3,4,5,6,7,8,9,10}; char c='a'; 则值为4的合法表达式是____C____。

(A) a[4] (B) a['d'-'c'] (C) a['d'-c] (D) a[100.0-c]

以下在VC6.0中会导致编译错误的语句是____D____。

(A) #define N '6'

int a[N-0x30]={N};

(B) int a[]={21.3,0.96,5,47.8};

(C) int a[][3]={10,20,30,40};

(D) int a[5]={1,2,3,4,5,6,7};

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

int a[7]={9,15,7,-3,0,11,15},m,n,i; for(m=n=0,i=1;i<7;i++)

if(a[i]>a[m]) m=i;

else if(a[i]

printf("%d,%d\n",m,n);

(A) 15,-3 (B) 6,3 (C) 1,3 (D) 2,4

以下说法正确的是____B____。

(A) 可以在程序的不同位置对数组的长度进行动态更新。

(B) 二维数组可以看成是特殊的一维数组,它的每个元素都是一个一维数组。

(C) 即使不对数组进行初始化,系统也会自动为数组元素赋予默认初值。

(D) 在定义二维数组并对其进行初始化时,允许省略列下标。

以下程序段用冒泡法对数组a进行由大到小排序,则下划线所在位置应填入的代码是____D____。int a[5]={29,47,14,110,8},i,j,t;

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

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

if(a[j]

(A) 5-i (B) 4 (C) 4-i (D) 3-i

若有以下程序段,则数组b中列下标为偶数的元素之和是____C____。

int a[12],b[3][4],i,j;

for(i=0;i<12;i++) a[i]=i+1;

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

for(j=0;j<4;j++) b[i][j]=a[i*4+j];

(A) 42 (B) 15 (C) 36 (D) 24

在VC6.0中有定义语句:double a[5]={23.7,1.08,-6.5,43.4,0.69}; int i; 则下列语句中错误的是____D____。

(A) for(i=0;i<5;i++) a[i]=getchar();

(B) for(i=0;i<5;i++) a[i]+='a';

(C) for(i=0;i<5;i++) printf("%f\n",a[i]);

(D) for(i=0;i<5;i++) scanf("%lf",a);

下列程序段在运行时,若通过键盘输入的数据为“1 3 47 9 23 15 11 32 19 2”,则输出结果是____D____。

int a[10],b[10],i,j,cnt=0;

for(i=0;i<10;i++){

scanf("%d",&a[i]);

for(j=2;j<=a[i]/2;j++) if(a[i]%j==0) break;

if(j>a[i]/2) b[cnt++]=a[i];

}

for(i=cnt-1;i>=0;i--) printf("%d ",b[i]);

(A) 2 19 11 23 47 3

(B) 2 3 11 19 23 47

(C) 1 2 3 11 19 23 47

(D) 2 19 11 23 47 3 1

以下程序段用选择法对数组a进行由小到大排序,则下划线所在位置应填入的代码是____A____。int a[5]={86,12,57,39,165},i,j,t;

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

for(j=________;j<=4;j++)

if(a[j]

(A) i+1 (B) ++i (C) 0 (D) 1

B 数组是C语言的一种构造数据类型,其元素的类型可以是整型、实型或者字符串类型。

B 若需定义一个包含2行3列共6个元素的二维整型数组a,并对其最后1行的3个元素进行初始化,可用如下语句实现:

int a[][3]={{5,6,7}};

B C语言程序在编译过程中,编译器会检查数组下标是否越界。

A 以下程序段在运行时,若通过键盘输入“1 2 3 4 5 6”,则输出结果为“1 4 2 5 3 6”。int a[2][3],b[3][2],i,j;

for(i=0;i<2;i++) for(j=0;j<3;j++){scanf("%d",&a[i][j]); b[j][i]=a[i][j];}

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

for(j=0;j<2;j++) printf("%d ",b[i][j]);

B 在定义数组时,只允许使用整型常量表达式来定义数组的长度,其值必须是正整数。

A 对于数值型数组而言,只能单个引用数组元素,不能一次引用整个数组。

B 若在以下程序段的下划线位置添加代码“a[i]%2&&a[i]/10”,则输出结果为数组a包含的两位数奇数。

int a[8]={5,8,22,13,75,46,129,63},i;

for(i=0;i<8;i++) if(________) printf("%d ",a[i]);

A 以下程序段的输出结果是:1 5 10 10 5 1。

int a[6][6],i,j;

for(i=0;i<6;i++) {a[i][0]=1; a[i][i]=1;}

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

for(j=1;j

for(i=0;i<6;i++) printf("%d ",a[5][i]);

A 若有以下定义语句,则数组a的最后一个元素是a[8]。

#define N 3

#define M N+2

double a[M*N];

B 若在程序中定义数组并进行初始化:int a[5]={12.3,8.67f,'x',45}; 则程序被编译时会报错。

A 以下程序段在运行时,若通过键盘输入“41”,则输出结果为“101001”。

int a[32],n,cnt=0,i;

scanf("%d",&n);

do{a[cnt++]=n%2; n/=2;}while(n);

for(i=cnt-1;i>=0;i--) printf("%d",a[i]);

数组名是一个【地址】常量,不能对它进行自增、自减和赋值运算。

《C语言程序设计》(3学分)试卷A

说明: 请考生将答案写在“武汉大学答题纸”上并标明题号,否则不得分。试 卷中C 语言程序的开发环境是VC 6。 一、选择题(共20小题,每小题2分,共40分) 1. 以下正确的C 语言自定义标识符是______。 A) _1a B) 2a_ C) do D) a.12 2. 温度华氏和摄氏的关系是: C=9 5(F-32)。已知:float C,F ;由华氏求摄氏的正确计算的表达式是____。 A) C=5/9(F-32) B) C=5*(F-32)/9 C) C=5/9*(F-32) D) 三个表达式都正确 3. 设float x ,由键盘输入:12.45, 能正确读入数据的输入语句是_________。 A) scanf("%5.2f",&x) B) scanf("%d",&x); C) scanf("%f",&x); D) scanf("%f",x); 4. 一个C 程序的执行是从( ) A) main()函数开始,直到main()函数结束 B) 第一个函数开始,直到最后一个函数结束 C) 第一个语句开始,直到最后一个语句结束 D) main()函数开始,直到最后一个函数结束 5. 判断char 型变量c1是否为数字的正确表达式为 ________。 A) 0<=c1<=9 B) c1>=0 &&c1<=9 C) …0?<=c1<=?9? D) c1>='0'&&c1<='9' 6. switch(表达式)语句中的“表达式”,允许的类型是_________。 A) float, int B) float, int, char C) int, char D) char, double 7. 设int i,j, x=0; for(i=5;i;i--) for(j=0;j<4;j++) x++; 则循环体结束后,x 的值为________。 A) 5 B) 20 C) 25 D) 死循环 8. 设x 和y 均为int 型变量,则执行下面的循环后,y 值为_________。 for(y=1,x=1;y<=50;y++) { if(x>=10)break; if (x%2==1)

c语言试题及答案

1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (A) double fun(int x, int y) (B) double fun(int x; int y) (C) double fun(int x, int y); (D) double fun(int x,y); 3、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式

C语言程序设计模拟精彩试题3(附问题详解)

《C语言程序设计》模拟试卷三 一、填空题。(每空2分,共16分) 1.在内存中,短整型变量占字节,单精度实型变量占字节,字符型变量占字节。2.一个C语言文件是由若干个组成。 3.设有以下变量定义,并已赋确定的值 char w; int x; float y; double z; 则表达式:w*x+z-y所求得的数据类型为。 4.若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式。5.若有如下图所示五个连续的int类型的存储单元并赋值如下图,a[0]的地址小于a[4]的地址。p和s是基类型为int的指针变量。请对以下问题进行填空。 a[0] a[1] a[2] a[3] a[4] (1)若p已指向存储单元a[1]。通过指针p,给s赋值,使s指向最后一个存储单元a[4]的语句是。(2)若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是。 二、单项选择题。(每题2分,共40分) 1.设有int x=11; 则表达式(x++ * 1/3) 的值是()。 A) 3 B) 4 C) 11 D) 12 2.下列程序的输出结果是()。 A) 3 B) 3.2 C) 0 D) 3.07 main() {double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(“%d \n”, d*y); } 3.下列程序执行后的输出结果是(小数点后只写一位)()。 A) 6 6 6.0 6.0 B) 6 6 6.7 6.7 C) 6 6 6.0 6.7 D) 6 6 6.7 6.0

main() { double d; float f; long l; int i; i=f=l=d=20/3; printf("%d %ld %f %f \n", i,l,f,d); scanf("%d",&d); } 4.下列变量定义中合法的是()。 A) short _a=1-.le-1; B) double b=1+5e2.5; C) long do=0xfdaL; D) float 2_and=1-e-3; 5.设int x=1, y=1; 表达式(!x||y--)的值是()。 A) 0 B) 1 C) 2 D) -1 6.与y=(x>0?1:x<0?-1:0);的功能相同的if语句是()。 A) if (x>0) y=1; B) if(x) else if(x<0)y=-1; if(x>0)y=1; else y=0; else if(x<0)y=-1; else y=0; C) y=-1 D) y=0; if(x) if(x>=0) if(x>0)y=1; if(x>0)y=1; else if(x==0)y=0; else y=-1; else y=-1; 7.以下循环体的执行次数是()。 A) 3 B) 2 C) 1 D) 0 main() { int i,j; for(i=0,j=1; i<=j+1; i+=2, j--)printf(“%d \n”,i); } 8.以下叙述正确的是()。 A) do-while语句构成的循环不能用其它语句构成的循环来代替。

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

C语言试卷及答案

一、选择题(每题 1 分,共 20 分) 1. C 语言程序的三种基本结构是顺序结构、选择结构和结构。 A、循环 B、递归 C、转移 D、嵌套 2. 下列标识符中,合法的是_______ 。 A) unsigned B) 5ab C) INT# D)_num2 3. 若float x ;x = 10/4 ;x的值是。 A、2.5 B、2.0 C、3 D、 2 4. 表达式!x 等价于。 A、x==0 B、x==1 C、x != 0 D、x != 1 5. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为。 A、算术运算、赋值运算、关系运算 B、关系运算、赋值运算、算术运算 C、算术运算、关系运算、赋值运算 D、关系运算、算术运算、赋值运算 6. 能将高级语言编写的源程序转换为目标程序的是。 A、链接程序 B、解释程序 C、编译程序 D、编辑程序 7. 下列语句定义pf为指向float类型变量f的指针,是正确的。 A、float f, *pf = f; B、float f, *pf = &f; C、float *pf = &f, f; D、float f, pf = f; 8. 一个C程序的执行是从。 A、本程序的main函数开始,到main函数结束 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序main函数结束 9. 能正确表示“当x的取值在[1,10]或[[200,210]范围内为真,否则为假”的表达式是________。 A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B、(x>=1)||(x<=10)||(x>=200)||(x<=210) C、(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D、(x>=1)||(x<=10)&&(x>=200)||(x<=210) 10. 对两个数组a和b进行如下初始化 char a[]=“ABCDEF”;char b[]={ …A?,?B?,?C?,?D?,?E?,?F?}; 则以下叙述正确的是。 A、a和b数组完全相同 B、a和b长度相同 C、a和b中都存放字符串 D、a数组比b数组长度长 11. 是不正确的字符常量。 A、'\n' B、'1' C、"a" D、'\101' 12. 若变量已正确定义,语句“if(a>b) k=0; else k=1;”和等价。 A、k=(a>b)?1:0; B、k=a>b; C、k=a<=b; D、a<=b ? 0 : 1; 13. 设变量定义为“int x, *p=&x;”,则&*p相当于。 A、p B、*p C、x D、*&x 14. 有两个字符数组a、b,则以下正确的输入语句是。 A)gets(a,b); B) scanf(“%s%s”,a,b); C) scanf(“%s%s”,&a,&b); D) gets(“a”),gets(“b”); 15. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是。 A、地址传递 B、单向值传递

c语言模拟题目第三套

第三套 若x,i,j,k 都是int型变量,则计算x=(i=4,j=16,k=32)后,x的值为:( ). A、52 B、16 C、4 D、32 【参考答案】错误 D 【学生答案】 [未答此题] 执行以下程序段后,输出结果和a的值是()。 int a=10; printf("%d",a++); A、11 和 10 B、10 和 11 C、11 和 11 D、10 和 10 【参考答案】错误 B 【学生答案】 [未答此题] 以下程序的输出结果是:( ) main() {int m=5; if(m++>5) printf("%d\n",m); else printf("%d\n",m--); } A、6 B、5 C、7 D、4 【参考答案】错误 A 【学生答案】 [未答此题] 执行下面程序段后,i的值是( ). int i=10; switch(i) {case 9: i+=1;

case 10: i--; case 11: i*=3; case 12: ++i; } A、28 B、10 C、9 D、27 【参考答案】错误 A 【学生答案】 [未答此题] 下面有关 for 循环的正确描述是( )。 A、for 循环是先执行循环体语句,后判断表达式 B、在 for 循环中,不能用 break 语句跳出循环体 C、for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 D、for 循环只能用于循环次数已经确定的情况 【参考答案】错误 C 【学生答案】 [未答此题] 针对下列程序段回答问题( ). for(t=1;t<=100;t++) { scanf("%d",&x); if(x<0) continue; printf("%3d",t); } A、x>=0时什么也不输出 B、最多允许输出100个非负整数 C、printf函数永远也不执行 D、当x<0时整个循环结束 【参考答案】错误 B 【学生答案】 [未答此题] 若char a[10];已正确定义,以下语句中不能从键盘上给a数组的 所有元素输入值的语句是()。 A、for(i=0;i<10;i++)a[i]=getchar(); B、scanf("%s",a); C、gets(a);

武大C语言试题

武汉大学C语言考试4-6章试题(内部交流) 1以下程序的输出结果是( ) main() { int i=0, j=0, k=6; if ((++i>0)||(++j>0)) k++; printf("%d, %d, %d\n", i, j, k); } A) 0, 0, 6 B) 1, 0, 7 C) 1, 1, 7 D) 0, 1, 7 2。下面程序段( )。 for(t=1;t<=100;t++) {scanf("%d",&x); if (x<0) continue; printf("%3d",t); } A) 当x<0时整个循环结束 B) x>=0时什么也不输出 C) printf函数永远也不执行 D) 最多允许输出100个非负整数 3。以下程序的输出结果是( )。 #include main() { int num=0; while(num<=2) { num++; printf("%d\n",num); } } A) 1 B) 1 C) 1 D) 1 2 2 2 3 3 4 4。请读下面程序: main() {int x=1, y=2, z=3; x+=y+=z; printf("%d\t", x

《C语言程序设计》课后习题参考答案

高等院校计算机基础教育规划教材《C++程序设计》课后习题参考答案 ――武汉大学出版社 习题1参考答案 一、选择题 1. A 2. D 二、填空题 1.BASIC、FORTRAN、AL_GOL60和COBOL 2. 8 3.关键字 4. 编辑、编译、链接和运行 三、简答题 1.答: (1)C语言具有结构化的控制语句。C语言提供了结构化程序所必需的基本控制语句,实现了对逻辑流的有效控制。 (2)C语言具有丰富的数据结构类型。C语言除提供整型、实型、字符型等基本数据类型外,还提供了用基本数据类型构造出的各种复杂的数据结构,如数组、结构、联合等。C语言还提供了与地址密切相关的指针类型。此外,用户还可以根据需要自定义数据类型。 (3)C语言具有丰富的运算符。C语言提供了多达34种运算符,丰富的数据类型与丰富的运算符相结合,使C语言的表达力更具灵活性,同时也提高了执行效率。 (4)C语言简洁、紧凑,使用方便、灵活,程序书写自由,有9种控制语句。 (5)C语言既具有高级语言的功能,又具有低级语言的许多功能,通常被称为中级计算机语言。它既是成功的系统描述语言,又是通用的程序设计语言。 (6)C语言与汇编语言相比,可移植性好。 (7)功能强大。C语言具有低级语言的一些功能,所以,生成目标代码质量高,程序执行效率高。现在许多系统软件都用C语言来描述,可以大大提高了编程效率。 2.答:运行一个C语言程序,一般需要经过如下几个步骤:①上机输入并编辑源程序;②编译源程序;③与库函数连接;④生成可执行目标程序;⑤运行目标程序。 3.答: (1)操作系统的设计与实现。C语言是一种应用非常广泛的结构化高级程序设计语言,既适合编写应用软件,又适合编写系统软件。

C语言全部题目及答案

C语言全部题目及答案 SANY GROUP system office room 【SANYUA16H-

C语言全部题目及答案 Exercise 1: Programming Environment and Basic Input/Output 1.Write a program that prints “This is my first program!” on the screen. (a)Save this program onto your own disk with the name of e2-1a; (b)Run this program without opening Turbo C; (c)Modify this program to print “This is my second program!”, then save it as e2-1b. Please do not overwrite the first program. 2.Write a program that prints the number 1 to 4 on the same line. Write the program using the following methods: (a)Using four “printf” statements. (b)Using one “printf” statement with no conversion specifier(i.e. no ‘%’). (c)Using one “printf” statement with four conversion specifiers 3.(a) Write a program that calculates and displays the number of minutes in 15 days. (b) Write a program that calculates and displays how many hours 180 minutes equal to. (c) (Optional) How about 174 minutes?

C语言上机考试经典试题(3套)

四川省普通高等学校计算机应用知识和能力 第二十八次等级考试 二级(C与C++语言) 笔试试卷 时间: 2008年4月19 日 上午9:00—11:00 第一部分 软件技术基础 (共15分) 一、是非判断题(每小题1分,共10分) ( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B ) 1. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。( 1 ) 2. 数据在计算机内存中的表示是指数据的存储结构。( 2 ) 3. Windows是多用户多任务操作系统。( 3 ) 4. 能影响中断响应次序的技术是中断优先级和中断屏蔽。( 4 ) 5. 链表可以随机访问任意一个结点,而顺序表则不能。( 5 ) 6. 作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。( 6 ) 7. 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。 ( 7 ) 8. 中断控制方式适用于外存同CPU之间进行大量数据交换。( 8 ) 9. 提供没有错误的程序是提高软件的可维护性的基本措施。( 9 ) 10.软件结构是以指令为基础而组成的一种控制层次结构。( 10 ) 二、选择题(每小题1分,共5分) 1. 数据流图是用于描述结构化方法中(11 )工作阶段的工具。 11 (A) 可行性分析(B) 程序编码 (C) 详细设计(D) 需要分析 2. 若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能的出栈序列是(12 )。 12 (A) 1,4,3,2 (B) 3,1,4,2 (C) 2,3,4,1 (D) 3,4,2,1 3. 任何两个并发进程之间(13 )。 13 (A) 可能存在同步或互斥关系(B) 一定存在同步关系 (C) 一定彼此独立无关(D) 一定存在互斥关系 4. 以下的哪个特征不是分时操作系统的主要特征(14 )。 14 (A) 分时性(B) 独占性 (C) 交互性(D) 多路性 5. 需求分析中开发人员主要从用户那里了解(15 )。 15 (A) 软件的维护(B) 软件的结构 (C) 软件做什么(D) 软件的测试

c语言期中考试试题及答案

《C语言程序设计》期中考试试卷 课程编号:03402513试卷类型:A卷考试形式:笔试考试日期: 注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。4.草稿纸用试卷的背面。 一、单项选择题(1空1分,共20分) 1、C语言程序的基本结构是(【1】) 。 【1】A) 函数B) 语句C) 字符D) 程序行 2、一个C程序的执行是(【2】) 。 【2】A) 从本程序的主函数开始,到本程序的主函数结束 B)从本程序的第一个函数开始,到本程序的最后一个函数结束 C) 从本程序的主函数开始,到本程序的最后一个函数结束 D)从本程序的第一个函数开始,到本程序的主函数结束 3、下列四个叙述中,错误的是(【3】) 。 【3】A) 一个C源程序必须有且只能有一个主函数 B) 一个C源程序可以含一个或多个子函数 C) 在C源程序中注释说明必须位于语句之后 D) C源程序的基本结构是函数 4、下面不属于C语言保留字的是(【4】) 。 【4】A) short B) ELSE C) extern D) for 5、下列四个叙述中,正确的是(【5】) 。 【5】A) 库函数也是C语言本身的组成部分 B) C语言中的输入输出操作是由相应语句完成的 C) 库函数是C编译系统提供的功能函数 D) 标题文件(头文件)可以在程序的函数内部调用 6、下列四组数据类型中,C语言允许的一组是(【6】)。 【6】A) 整型、实型、逻辑型B) 整型、实型、字符型 C) 整型、双精度型、布尔型D) 整型、实型、复型 7、在C语言中不同数据类型的的长度是(【7】)。 【7】A) 固定的B) 由用户自己定义的 C) 任意的D) 与机器字长有关

武汉大学2012-2013年上学期3学分《C语言程序设计》期末试卷

一、选择题(每小题2分,共34分) 1. 以下不合法的用户标识符是__C____。 A、j2_KEY B、Double C、4d D、_8_ 复习要点: 标识符的定义:首字符必须是字母或下划线;后续字符可以是字母、数字或下画线。C、4d 中用了‘4’做首字符,所以不合法 2.以下叙述中正确的是__A____。 A、C程序中注释部分可以出现在程序中任意合适的地方 B、花括号“{”和“}”只能作为函数体的定界符 C、构成C程序的基本单位是函数,所有函数名都可以由用户命名(库函数) D、分号是C语言之间的分隔符,不是语句的一部分 复习要点: A、C程序中注释部分可以出现在程序中任意合适的地方。对,注释由/* */包含 B、花括号“{”和“}”只能作为函数体的定界符,不对。还可以用做复合语句的定界符,也可以做结构体的定界符 C、构成C程序的基本单位是函数,所有函数名都可以由用户命名(库函数),不对。库函数声明和主函数声明已经给定,只可以调用 D、分号是C语言之间的分隔符,不是语句的一部分,不对。分号是语句的结束,是语句的组成部分 3.设int a=12,则执行完语句a+=a-=a*a后,a的值是__D____。 A、0 B、264 C、144 D、-264 原因:赋值运算赋”=”和符合赋值运算赋都是右结合性,所以,先执行a=12然后执行a-=a*a,即a=a-a*a, a的值为-132。最后执行a+=a,即a=a+a. 4.假定x和y为double型,表达式x=2,y=x+3/2的值是__D____。 A、3.500000 B、3 C、2.000000 D、3.000000 复习要点:各种类型数据运算后的数据类型 在算术运算时,数据运算时的类型按照数据类型自动转换的原则进行。 就这道体来说,3/2是整数和整数相除,计算结果还是整数,且没有4舍5入的概念。所以3/2的结果为1。则x+1是double类型和int类型的和,结果的类型应该为double类型。即2.0+1的最后结果3.000000 5.语句:printf("%d",(a=2)&&(b=-2));的输出结果是___B___。 A、2 B、1 C、-4 D、-2 复习要点:逻辑运算符”&&”是”与”运算,即只有两个操作数为真,结果才为真。在判断两个操作a和b数的值时,都是非0,即a和b为真。运算结果为真用1表示,故B 对,6.若变量c为char类型,能正确判断出c为小写字母的表达式是___D___。 A、′a′<=c<=′z′ B、(c>=′a′)||(c<=′z′) C、(′a′<=c)and(′z′>=c) D、(c>=′a′)&&(c<=′z′) 原因:A)错,不可能用两个运算符“<=”或两个运算符“>=”表达一个数值的范围,学

c语言试题及答案 ()

第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由

主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。

C语言程序设计模拟试题A(附答案)

《C语言程序设计》模拟试卷A 一、单项选择题(每题2分,共20分) 1、下列有关C语言的叙述中错误的是(D)。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是(C)。 A) MAIN B) _HJ C) 2ong D) LINE1 3、以下能正确定义一维数组的是(C)。 A) int a[5]={0,1,2,3,4,5};B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 4、执行下列程序段后输出的结果是(C)。 x = 9; while (x > 7) {printf(“*”); x- -; } A) ****B) ***C) **D) * 5、设char str1[10] = “ABCDE”, str2[10] = “xyz”; 则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是(D)。 解析: strcpy(str1,str2); 后,str1[] 里是"XYZ", Z 后面有字符串结束符 strcpy(str1,str2); 执行后,函数返回的是str1, 因为str1[] 里是新值"XYZ", 而 strlen(strcpy(str1,str2)) 就是strlen(str1的新值),所以得3。 strlen 统计到字符串结束符以前,即,不计入字符串结束符。

A)9B) 8C) 5D) 3 6、若用数组名作为函数调用的实参,则传递给形参的是(A)。 A) 数组的首地址B) 数组第一个元素的值 C) 数组中全部元素的值D) 数组元素的个数 7、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为(C)。 A)void B)double C)int D)char 8、下面不能正确进行字符串赋值操作的语句是(C)。 A) char s[5]={"ABCD"};B) char s[5];s="ABCD"; C) char *s;s="ABCDEF";D) char *s="ABCD"; 解析:这样理论上的没错的把s指针指向字符串可以改变s指针但不能改变其指向的值正确的应该是这样char s[] = "ABCDEF"; 或char s[8];strcpy(s, "ABCDEF"); 9、设有说明int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为3的是(C)。 A)++p B)++(*p)C) *(++p)D) *(p+=2) 解析: A是把p得地址后移一个int单位长度,即使p指向数组的第二个元素。 B是取得p当前指向的元素值然后加1,即1+1=2; C是先移动p,使其指向第二个元素,然后取得当前指针指向的元素值,即3. D是先使p指向数组的第三个元素,然后去的当前指针指向的元素的值,即5。 10、下面程序的输出结果是(B)。 int m=13; int fun( int x,int y) { int m=3; return( x*y-m); } main( ) { int a=7,b=5;

武汉大学C语言程序设计习题答案

习题答案: 第一章 一.选择题 ABDAC CABAA DDABA CCACB ADDDB AACAA 二、判断题 BABAB ABBBA BBBAB BBBAA 三、填空题 1.位 2.33.6 3.11010.1 4.机内码 5.Hz或赫兹 6.72B 7.机器字长 8.CPU 9.10100110 11011001 11011010 10.小 第二章 一、单选题 1. B 2. D 3. D 4. C 5. A 6. A 7. C 8. C 9. A 10. D 11. B 12. C 13. A 14. A 15. C 16. B 17 D 18. D 19. A 20. B 21. C 22. A 23. B 24. A 25. B 26. B 27. C 28. B 29. D 30.A 31. A 32. B 33. B 34. C 35. D 36. A 37. A 38. D 39. A 40. D 二、判断题 1. T 2.T 3.T 4.F 5.F 6.T 7.F 8.F 9.T 10. F 11. F 12.T 13.F 14.F 15.F 16.T 17.F 18.F 19.T 20. T 21. T 22.T 23.T 24.T 25.F 26.T 27.T 28.F 29.F 30. T 31. F 32.T 33.T 三、填空题 1. 资源管理器 2. 添加/删除Windows组件 3. · 4. 树 5. …… 6. 还原 7. 存档8. 显示9. TXT 10. EXIT 11. 启动 12. 右

13. 文件夹选项14. Alt+PrnScreen 15. 硬盘 16. CTRL 17. 属性 18. 任务栏和开始菜单属性 19. del 20. 移动 21. 255 22. 子文件夹 23. 隐藏 24. 浏览器 25. 彻底 26. A*.wav 27. 我的文档 28. 应用程序 29. shift 30. 关闭 31. 移动窗口 32. 任务栏33. 横向 34. Home、End 35. 桌面 36. 对话框 37. 拉伸 38. 复制 39. wav 40. 剪贴板 第3章 一、选择题 1.C 2.D 3.B 4.B 5.A 6.D 7.D 8.B 9. A 10. C 11.D 12.C 13.D 14.C 15.B 16.D 17.D 18.C 19. C 20. D 21.B 22.C 23.D 24.A 25.A 26.A 27.D 28.B 29. B 30. B 31.D 32.A 33.B 34.B 35.C 36.C 37.A 38.D 39. B 40. C 41.D 42.D 43.B 44.D 45.D 46.C 47.D 48.D 49. B 50. D 二、填空题 1.选择性粘贴 2. SUM 3. 占位符 4. 表格中插入点所在的行被删除 5.格式 6. 引用运算符; 算术运算符; 文本运算符; 比较运算符 7. 等差8. 记录单9.更新 10.设计模板空演示文稿11.“文件/页面设置” 12.4,6 13.演讲者放映观众自行浏览 14.幻灯片放映设置放映方式 15.普通视图幻灯片视图16.应用17.忽略母版的背景图形 18.幻灯片浏览19.超级链接20.新幻灯片 21.幻灯片浏览22. 表23. 查询24. 空值25. 对磁盘空间 26. 字段名称27. 数据类型28. 备注型29. 千位分割符30. 有效性规则 三、判断题 1.F 2.T 3.F 4.T 5.T 6.F 7.F 8.F 9. T 10. F 11. F 12. T 13. T 14. F 15. F 16. T 17. F 18. F 19. T 20. T 21. T 22. F 23. T 24. T 25. T 26. F 27. T 28. F 29. T 30. F 第4章 填空题 1、局域 2、Internet protocol 3、域名服务器 4、网络地址主机地址 5、smtp pop3(或IMAP4) 6、com cn 7、http

C语言试题及答案

一、单项选择题 1. 软件危机具有下列表现( d )。 I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住 III. 软件常常不可维护IV. 软件成本逐年上升 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。 A. 运行和维护阶段 B. 设计阶段 C. 代码实现阶段 D. 测试阶段 3. 下列属于软件的特点的是(D )。 A. 软件是一种逻辑实体,具有抽象性 ~ B. 软件在使用过程中没有磨损、老化的问题 C. 软件不同于一般程序,它的一个显著特点是规模庞大,复杂程度高 D. 以上都正确 4. 软件工程的出现是由于(D )。 A. 软件危机的出现 B. 计算机硬件技术的发展 C. 软件社会化的需要 D. 计算机软件技术的发展 5. 软件开发技术不包含( d )。 A. 软件开发方法学 B. 软件工程环境 C. 软件工具 D. 软件质量度度量 6. 软件工程的课程特点( D )。 【 I. 学科理论及其知识应用的多维性 II. 工程化 III. 浓厚的方法学色彩 IV. 实践性、指导性强 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 7. 下列属于应用软件的是( b )。 I. 计算机辅助教学软件II. 软件测试工具 III. 办公自动化软件IV. 工程与科学计算软件

A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 8. 需求分析阶段最重要的技术文档是( b )。 - A. 设计说明书 B. 需求规格说明书 C. 可行性分析报告 D. 用户手册 9. 以下关于数据流图的说法错误的是( c )。 A. 数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储 B. 数据流图是用作结构化分析的一种工具 C. 传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成 D. 数据流图的绘制采用自上向下、逐层分解的方法 10. 数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( c )。 A. 数据库设计 B. 数据通信 C. 数据定义 D. 数据维护 11. 需求分析阶段的研究对象是( b )。 ¥ A. 系统分析员要求 B. 用户要求 C. 软硬件要求 D. 系统要求 12. 结构化方法的基本原则是( b )。 A. 模块化 B. 抽象与分解 C. 信息隐蔽 D. 逐步求精 13. 耦合度最高的是(b)耦合。 A. 环境 B. 内容 C. 控制 D. 数据 14. 内聚程度较低的是( a )内聚。 A. 偶然 B. 通讯 C. 顺序 D. 时间 15. 对一个程序来说,组成系统的模块数目( b ),则开发成本越小。 A. 越多 B. 越少 C. 顺序 D. 时间> 16. 画软件结构图时应注意调用关系只能是(B )。 A. 从下到上 B. 从上到下 C. 从左到右 D. 从右到左 17. 程序流程图中的箭头代表( b )。 A. 数据流 B. 控制流 C. 顺序流 D. 调用 18. 软件测试是软件质量保证的重要手段,下述( B )是软件测试的最基础环节。

C语言程序设计试题第3套

C语言程序设计试题(第3套) 一、单项选择题(30分,每题2分) 1.下面关于C语言的说法,错误的是______。 A、一个C程序总是从执行main开始。 B、C程序可以用/<*……*>/ 对程序作注释。 C、C语言本身没有输入输出语句,输入、输出操作由库函数scanf和printf等来完成。 D、在C程序中,数据定义的最后必须写上一个分号。 2.判断字符串s1是否大于字符串s2,应当使用。 A、if (s1>s2) B、if (strcmp(s1,s2)) C、if (strcmp(s2,s1)>0) D、if (strcmp(s1,s2)>0) 3. 下列表达式错误的是______。 A、4/7 B、4.0/7.0 C、(-4)%(-7) D、4.0%7.0 4. 以下能定义为用户标识符的是______。 A、scanf B、printf C、_3com_ D、int 5. 能正确表示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 6. 若有以下程序段:int c1=1, c2=2 ,c3; c3=2.0+c1%c2 ; 则执行后,c3的值是______。 A、2.0 B、2 C、3.0 D、3 7.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是______。 A、scanf("%d%d%d",i,j,k); B、scanf("%d %d %d",&i,&j,&k); C、scanf("%d,%d,%d",&i,&j,&k); D、scanf("%d,%d,%d",i,j,k); 8. 以下程序输出结果是。 A、7 B、6 C、5 D、4 main() { int m=5; if(m++>5) printf("%d\n",m); esle printf("%d\n",m- -); } 9. 有以下程序段 #include main() {int sum=0,i; scanf("%d",&i); do {sum=sum+i;i++;} while(i<=10); printf("sum=%d\n",sum); } 若运行时从键盘输入11,则循环体会执行。 A、11次 B、10次 C、1次 D、0次 10.二维数组int a[4][4]前5个元素在内存中的排列次序为。 A、a[0][0] a[1][1] a[2][2] a[3][3] a[4][4] B、a[0][0] a[0][1] a[0][2] a[0][3] a[1][0]

相关主题
文本预览
相关文档 最新文档