c语言程序设计期末考试题库及答案2021(c语言程序设计课程考试)

http://www.itjxue.com  2023-03-16 07:22  来源:未知  点击次数: 

C语言程序设计试题 求标准答案 都是多选

1、答案:A

(单引号括起来的都是字符,而且一对单引号最多对应一个字符,\反斜杠是转义字符的开始,\72是ASCII码对应的字母H。也就是把H这个字母存到了变量char a中。就一个字符H。)

2、ACDE

解析:

int a=3,b=4,c=5;,

A、ab

B、a<=b

C、(a||b)>c

D、a<=(b||c)

E、!((a<b)!c||b)

优先级由大到小:() ! ||

A选项,34错误,逻辑值0。

B选项,3=4正确,逻辑值1。

C选项,(3||4)5,(3||4)"或"逻辑运算符两边只要有一个非0的整个值就是1,15错,逻辑值0。

D选项,3=(4||5)错误,逻辑值0。

E选项,!((34)!5||4),先(34)逻辑值1,!5逻辑值0,10是0,0||4是1,!1是0,所以逻辑值0。

3、AC。

解析:A可以,B答案b不能被赋值(自左向右,计算||左侧就已经是1了右边就不用再计算了整个表达式无论右边如何整个逻辑值必定是1,计算机也就不会计算右边了)C可以(因为两边都必须计算才能得出最后的逻辑值答案),D不可以a不能被赋值(左边就一个a,构不成赋值,可能存放一个随机值,右边可以被赋值)。

4、ABCD。

外部函数几乎可以被所有函数调用。只要开头#include” "引入。

C语言程序设计试题

1. 一条简单语句是以_____;___字符作为结束符的,一条复合语句是分别以___{_____字符和_____}___字符作为开始符和结束符的。

2. 任何一个C++程序至少且只能包含一个_____主___函数,且程序总是从这个函数开始执行,不论这个函数的位置如何。一个函数定义由 函数头 和 函数体 两部分组成。

3. C++头文件和源程序文件的扩展名分别为 .h 和 .cpp。

4. cout与操作符___配合使用才能显示输出,cin与操作符__配合使用才能实现输入。

5. 数据类型int,char,bool,float,double, int * 等的类型长度分别为___4_、1_、_1_、_4、_8___和_____4___。

6. 数值常量46、0173和0x62对应的十进制值分别为_____46___、____123____和______98__。

7. 字符串”It\’s\40a\40C++programe!”中包含有______19____个字符。

8. 若x=5,y=10,则计算y*=++x表达式后,x和y的值分别为____6____和____60____。

9. 若x=25,则计算y=x--表达式后,x和y的值分别为____24____和__25______。

10. 假定x和ch分别为int型和char型,则sizeof(x)和sizeof(ch)的值分别为___4_____和_____1___。

11. 假定x=64,y=88,则x2和y2的值分别为____128____和___44_____。

12. 假定x是一个逻辑量,则xtrue的值与_____x___的值相同,x||false的值也与_____x___的值相同。

13. 假定x是一个逻辑量,则x!x和x||!x的值分别为____0____和____1____。

14. 假定x=10,则表达式x=10?20:30的值为____20____。

15. 表达式sqrt(81)和pow(6,3)的值分别为________9______和_________216_____。

16. 数学算式(1+x)sin48°和axbex+1对应的算术表达式分别为___(1+x)*sin(48*3.14159/180)_____和_____a*pow(x,b)*exp(x+1)___。

17. 逻辑表达式:a=x||b2*y+10的相反式为:___~(a=x2*y+10)_____。

18. 在嵌套的if语句中,每个else关键字与它前面最接近的____if____关键字相配套。

19. 在for语句中,假定循环体被执行次数为n,则表达式1共被计算____n___次,表达式2共被计算____n____次,表达式3共被计算____n____次。

20. 执行for和while循环时,每次是先进行____条件____的判断,然后再执行____循环___,执行do循环时则相反。

另外,站长团上有产品团购,便宜有保证

C语言题库,求发一份

单选题

1. 以下叙述中正确的是(1)。

 A.若e1、e2为变量,e为表达式,则

e1=e2=e使得e1、e2都具有表达式e的值 。

 B.程序中不能定义与库函数名同名的变量。

 C.一个C源程序可放在多个文件中,但

一个函数不能跨放在两个不同的文件中。

 D.C语言编译系统以函数为单位编译源程序。

2. 若a,b,c都是实型变量,则下列语句中除 (2)  之外,都可能得不到正确的计算结果。

A.if(b*b-4*a*c==0) x1=x2=-b/(2*a);

else x1=(-b+sqrt(b*b-4*a*c))/(2*a), x2=(-b-sqrt(b*b-4*a*c))/(2*a);

B.b=2.0e38+1.0-2.0e38;

C.a=456*768/2;

D.double define=1.0;

3. 以下正确的常量是(3 )。

A.‘077’ B.‘\0x89’ C.3.14u D.‘\012’

4. 若已有声明“float x= -1234.5678; int m,n=4;”则执行“m=printf(“\n%8.3f\n”,x)/n;”语句后,

变量m的值是 (4) 。

A. 2 B. 3 C. 4 D. 5

5. 若已有声明“int x1; float x2; long x3; char x4;”,且以下选项均出现在switch语句中,其中正确

的是 (5) 。

A. case 1.1: scanf("%d",x1);break;

B. case 1+2: scanf("%f",x2); break;

 C. case 'x': 

case 'y'-1: scanf("%ld",x3); break;

D. case x4: scanf("%c",x4); break;

6. 33.以下表达式中,能够作为“if(e) 语句”中判断条件表达式e 的是 (6) 。

 A. x==++(x+1) B. x+=++x||x++ C. x+1=z D. x%2.0!=0

7. 以下局部变量声明中,正确的是 (7) 。

A.int x=0, void=1;   B.int x=1,y=2x;

C.int x=2,y=sqrt(x);   D.int x=sqrt(y),y=4;

8. 在以下语句中,正确的是 (8) 。

 A.if(ab)m=a;n=b;else m=b;n=a;

 B.if(ab){m=a;n=b;else m=b;n=a;}

 C.if(ab)m=a,n=b;else m=b,n=a;

 D.if(ab){m=a;n=b;}else(a=b){m=b;n=a;}

9.24.已知有声明:“char c=‘1’ ; int x=300 ; float t=35000 ; double d=3.1234567e10 ;”,则以下表达式

求值时除 (9 ) 外,其结果都可能是不准确的。

A. x=t/c B. t=d/x C. t=d/1e5f D. t=x+c

10.若有声明“int i,k=1; unsigned j;”,则下列语句执行时会出现无限循环的语句

是 (10) 。

A.for(j=15;j0;j-=2) k++;

B.for(j=0;j15;j+=2) k++;

C.for(i=0;i15;i+=2) k++;

D.for(i=15;i0;i-=2) k++;

11.已有声明“int x=2,y=1,z=0;”,以下表达式的值不为0的是 (11) 。

A. x==(x=0,y=1,z=2)

B. zyx

C. xy==1

D. x(y=2)

12.若e1、e2和e3是表达式,以下选项中与语句while(e1){e2,e3;}功能等价的语句是 (12 ) 。

A. for( ;e1;e3)e2; B. for( ;e1;e2)e3; C. for(e1;e2;e3); D. for(e1; e2, e3; );

13.已有声明“int x=3;”,以下选项中与“x+=x =x+1”功能不等价的表达式是 (13 ) 。

A.x=x+(x=xx+1) B.x=x+(x=x(x+1)) C.x=x+(x=xx1) D.x=x(x+1), x=x+x

14.若已有声明“int a=2; ”,则执行语句“printf("%d", a, a+1 );”后的输出结果是 (14) 。

A.语法错 B. 2,3 C. 2 D. 3

15.语句“if (!n) n++;”中的“!n”等价于如下 (15) 条件的判定。

A.n==0   B.n!=0   C.n0   D.n0

16.若已有声明“int a=1; ”,则以下表达式中错误的是 (16 ) 。

A.-a++ B.+a-- C.--a D.++-a

17.下列 (17) C语言表达式能正确表达数学计算式1÷× 2xy。

A. 1/sqrt(2*3.14)*2*pow(x,y) B.1.0/sqrt(2)*2*x**y

C. 1.0/sqrt(6.28)*2x^y  D.1/6.28^0.5*2*pow(x,y)

18. 已有声明“int a=3,b=3,c=2;”,以下表达式中值为0的是 (18) 。

A. !a!bc B. !a || !b || c C. a==b b=c D. a=b bc

19.

36.若有: int w=1 , x=2 , y=3 , z=4; 则表达式 wx?x--:yz?y--:++z 的值为 (19 ) 。

 A. 4   B. 3     C. 2   D. 1

20. 已知某程序中有以下片断:

#define p 2.5

main( )

{ float x=p;

}

则main函数中标识符p代表一个 (20)  。

A. float型变量  B. double 型变量 C. float型常量 D. double 型常量

20.

填空题

1.21.设有如下程序段:

int a=2, b, c=5 ;

scanf( “%d” , b) ;

b = c-- || scanf (“%d” , c ) a++;

执行该程序段时,若从键盘上输入的数据是 4?3 (?代表空格键) , 则变量c 的值为 (21) 。

2. signed和unsigned只能用于声明int型变量和 (22) 型变量。

3.代数式“||”的C语言表达式是 (23) 。

4.已有声明“int a=-13,n=7;”,表达式“a%=n%=4”求值后变量a的值为 (24) 。

5.已有声明“unsigned int a=30; ” ,那么 –a 的值为___(25)____。

6.

如下程序执行后的输出是____(26)____。

#includestdio.h

main ( )

{

int i=1,m=0;

 switch ( i )

{  

 case 1 :

 case 2 : m++;

 case 3 : m++;

}

 printf ( “%d” ,m);

}

7.C语言的三个逻辑运算符(!、、||)中,优先级高于算术运算符的是

  (27) 。

8.已知sizeof(int)的值为2,执行如下程序后输出结果为 (28) 。

main()

{ int a,b;

a=65536;

b=32767+1;

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

}

9.若有声明“int a=3,b=0,c=5;”, 则表达式 !a+b+c-1b+c/2 的值是 (29) 。

10.若有声明“int x=1,y=2;” ,则表达式 ++x, x+y++ 的值是 (30) 。

三、阅读程序题

1.在PC机的TC中执行以下程序后的输出是: (31) 。

main()

{

unsigned x=0x7f39;

int y;

char c;

c=x;

x+=0307;

y=x;

printf(“%d,%x,%c”,x,y,c);

}

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

#includestdio.h

main ( )

{ int x=30, y=45;

while(x!=y)

if(xy)x-=y;

else y-=x;

printf("%d", x);

}

3.

以下程序运行后输出结果的第一行是 (33) ,第二行是 (34) 。

#includestdio.h

#includemath.h

void main()

{ int a=0x65,b,c,count=0;

b=a;

while(b0)

{ b=b/8;

count++;

}

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

while(count0)

{ c=pow(8,count-1);

printf("%d",a/c);

a=a%c;

count--;

}

}

4.以下程序运行时输出结果是 (35) 。

#include stdio.h

main()

{

  int i,x=3,y=5;

for(i=0;i3;i++)

switch(y%x)

{

  case 0: printf("%d",y);

case 1: printf("%d",y--);break;

case 2: printf("%d",--y);break;

}

}

5.以下程序执行后,输出结果的第一行是 (36) ,第二行是 _(37)______。

#define N 100

main()

{ int i=0,sum=0;

do

{ if(i==(i/2)*2)

continue;

sum++;

if(sum3)

break;

}while(++iN);

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

}

四、完善程序题

1.下列程序的功能是按从键盘上输入的整数m,判断2m -1是否为素数,若为素数再求2m -1的反序数。例如:m为17,217 –1(131071)是素数,其反序数是170131。

#include stdio.h

(38)

main()

{

int m,j;

long q,k1,k2=0,k3;

scanf("%d",m);

k3=k1=pow(2,m)-1;

q=sqrt(k1);

for(j=2;j=q;j++)

if( (39) ) break;

if(jq)

{ while(k30)

{ k2=k2*10+ (40)  ;

k3/=10;

}

printf("m=%d\npow(2,m)-1=%ld is a prime.\nreverse order %ld\n",m,k1,k2);

}

else

printf("m=%d isn't a prime.\n",m);

}

2. 以下程序找到并输出所有满足给定条件的四位十进制表示的正整数:该数是某个数的平方、该数的后二位是25、组成该整数的各位数字中有两位是2。例如:1225是满足所给条件的四位正整数(352=1225)。

#includestdio.h

#includemath.h

main()

{ long i,j,s,d=0;

for(i=1000;i10000;i++)

{ (41) ;

j= (42) ;

if(i==j*j i%100==25)

{ s=i;

while(s0)

{ if( (43) )d++;

s=s/10;

}

if(d==2) printf("\n %d",i);

}

}

}

3..下列程序计算下列数学函数展开式的近似值,累加运算在最后一项的绝对值小于10-6时停止。

程序运行时从键盘上分别三个实数-1.0、0.5、1.0,作为x的值。

#include stdio.h

#include math.h

#define EPS 1.0e-6

main()

{ double x,n,tn,ft,sn,xn;

int i;

for(i=0;i3;i++)

{ (44) ;  

ft=1.0;

scanf("%lf",x);

sn=xn=x;

do{

xn=xn*x*x;

ft=ft*(2*n-3)/(2*n-2);  

tn=ft*xn/ (45) ;

sn=sn+tn;

n=n+1;

}while( (46) );

printf("f(%lf)=%0.6lf\n",x,sn);

}

}

《C语言程序设计》试卷答题纸

(本试卷满分100分)

系科_____________学号_____________姓名_____________成绩____________

单项选择题得分 填空题得分 阅读程序题得分 完善程序题得分 总分

一 、单项选择题

(1) (2) (3) (4) (5)

(6) (7) (8) (9) (10)

(11) (12) (13) (14) (15)

(16) (17) (18) (19) (20)

二、填空题

(21) (22)

(23) (24)

(25) (26)

(27) (28)

(29) (30)

三、阅读程序题

(31) (32)

(33) (34)

(35) (36)

(37

四、完善程序题

(38) (39)

(40) (41)

(42) (43)

(44) (45)

(46)

《C语言程序设计》试卷参考答案

(本试卷满分100分)

一 、单项选择题

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

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

(11)C (12)A (13)A (14)C (15)A

(16)D (17)A (18)A (19)B (20)D

二、填空题

(21) 4 (22) char

(23) fabs(exp(sqrt(1+sin(x)))) (24) -1

(25) 65506 (26) 2

(27) ! (28) 0 -32768

(29) 1 (30) 4

三、阅读程序题

(31) -32768, 8000, 9 (32) 15

(33) 3 (34) 145

(35) 4433 (36) 4

(37) 7

四、完善程序题

(38) #include math.h (39) k1%j==0

(40) k3%10 (41) d=0

(42) sqrt(i) (43) s%10==2

(44) n=2.0 (45) (2*n-1)

(46) fabs(tn)EPS

帮忙给个《C语言程序设计》 练习题 答案 这次考试题就在其中。。。。

1A(B 中第四个选项首行是数字,D选型有关键字) 2D 3A 4A 5C(我在TC上运行的) 6A 7D 8D(0147是8进制转换成十进制即103即‘g’) 9D(属自动类型转换) 10 D 11C 12A(条件运算符运算方式是从右向左的) 13B(算术运算符-的优先级高于关系运算符=,最后是逻辑判断 为真1,假0)14C

15 D(考察逗号运算符) 16D

求C语言程序设计的答案

2分,共60分)下列各题A、B、C、D四个选项中,只有一个选项是正确的。请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

1.微型计算机的运算器、控制器及内存储器组合在一起,称之为()(本题分值:1分)

D

A.ALU

B.CPU

C.MPU

D.主机

2.下列存储器中,存取速度最快的是()(本题分值:1分)

D

A.软盘

B.硬盘

C.光盘

D.内存

3.系统软件中最重要的是()(本题分值:1分)

A

A.操作系统

B.语言处理程序

C.工具软件

D.数据库管理系统

4、CPU处理的数据基本单位为字,一个字的字长()(本题分值:1分)

D

A.为8个二进制位

B.为16个二进制位

C.为32个二进制位

D.与CPU芯片的型号有关

5.打印当前屏幕内容应使用的控制键是()(本题分值:1分)

D

A.Scroll-Lock

B.Num-Lock

C.PgDn

D.PrtSc(Print Screen)

6.能将高级语言源程序转换成目标程序的是()(本题分值:1分)

C

A.调试程序

B.解释程序

C.编译程序

D.编辑程序

7.二进制数1110111.11转换成十进制数是()(本题分值:1分)

B

A.119.375

B.119.75

C.119.125

D.119.3

8.十六进制数FF.1转换成十进制数是()(本题分值:1分)

A

A.255.0625

B.255.125

C.127.0625

D.127.125

9.中国国家计算机网络设施是()(本题分值:1分)

A

A.NCFC

B.CERNET

C.ISDN

D.Internet

10.控制键^C的功能为()(本题分值:1分)

A

A.终止当前操作

B.系统复位

C.暂停标准输出设备的输出

D.结束命令行

11.COMMAND.COM为命令处理程序,DOS系统启动后,它()(本题分值:1分)

B

A.驻留在外存,需要时装入内存

B.常驻内存,包含所有内部命令

C.不能处理外部命令

D.不能处理后缀为.EXE的可执行文件

12.为了将所有扩展名为.PAS的文件改成扩展名为.P,应使用命令()(本题分值:1分)

C

A.REN *.PAS .?AS

B.REN PAS P

C.REN *.PAS *.P

D.REN *.PAS *.P??

13.设当前盘中文件XY.C的路径为\A\B\XU,当前目录为\A\B。为了查看文件XY.C的内容,应使用命令()(本题分值:1分)

A

A.TYPE XU\XY.C

B.TYPE \XU\XY.C

C.DIR XU\XY.C

D.DIR \A\B\XU\XY.C

14.要将提示符改成当前盘当前目录后加一个大于号“>”,应使用命令()(本题分值:1分)

B

A.PROMPT

B.PROMPT $ p $ g

C.PROMPT $ $

D.PROMPT C\>

15.在多媒体计算机系统中,CD-ROM属于()(本题分值:1分)

D

A.感觉媒体

B.表示媒体

C.表现媒体

D.存储媒体

16.设当前盘为C盘,将A盘根目录下的文件目录信息存放到当前盘当前目录下的文件AB中,应使用命令()(本题分值:1分)

C

A.TYPE A:\>AB

B.DIR >AB

C.DIR A:\>AB

D.DIR \>AB

17.在位运算中,操作数每右移一位,其结果相当于()(本题分值:1分)

B

A.操作数乘以2

B.操作数除以2

C.操作数除以16

D.操作数乘以16

18.在当前盘当前目录下有一个文件A.BAT,其内容为

CD \

MD \XYZ\AB\B\C

CD XYZ\AB\B

在正确执行上述文件后,接着执行下列命令时,不会发生错误的是()(本题分值:1分)

C

A.MD C

B.RD \XYZ

C.RD C

D.RD B

19.下列命令组中两个DOS命令互相等价的是()(本题分值:1分)

D

A.TYPE AB.TXT与DIR AB.TXT

B.DISKCOMP A:B:与COMP A:.* B:*.

C.TYPE AB.TXT>>XY.TXT与COPY AB.TXT XY.TXT

D.TYPE AB.TXT>XY.TXT与COPY AB.TXT XY.TXT

20.设A盘为启动盘,其目录结构为

根目录

DOS子目录 COMAND.COM

USER子目录 AUTOEXEC.BAT

其文件AUTOEXEC.BAT的内容如下:

MD \XYZ

CD \DOS\USER

则由A盘启动成功后,A盘的当前目录是()(本题分值:2分)

C

A.\DOS\USER

B.\XYZ

C.根目录

D.\DOS

21.C语言提供的合法关键字是()(本题分值:1分)

C

A.switch

B.cher

C.case

D.default

22.在C语言中,合法的字符常量是()(本题分值:1分)

B

A.′\084′

B.′\x43′

C.′ab′

D.′\0′

23.若已定义x和y为double类型,则表达式: x=1,y=x+3/2的值是()(本题分值:1分)

C

A.1

B.2

C.2.0

D.2.5

24.合法的数组定义是()(本题分值:1分)

D

A.int a[]=〃string〃;

B.int a[5]=;

C.char a=〃string〃;

D.char a[]=;

25.设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是()(本题分值:1分)

A

A.10<a<15

B.a==11||a==12||a==13||a==14

C.a>10&&a<15

D.!(a<=10)&&!(a>=15)

26.若t为double类型,表达式t=1,t+5,t++的值是()(本题分值:1分)

C

A.1

B.6.0

C.2.0

D.1.0

27.若有定义和语句:

char s[10];s=〃abcd〃;printf(〃%s\n〃,s);

则结果是(以下μ代表空格)()(本题分值:1分)

D

A.输出abcd

B.输出a

C.输出abcdμμμμμ

D.编译不通过

28.若有定义和语句:

int **pp,*p,a=10,b=20;

pp=&p;p=&a;p=&b;printf(〃%d,%d\n〃,*p,**pp);

则输出结果是()(本题分值:1分)

D

A.10,10

B.10,20

C.20,10

D.20,20

29.若有以下定义和语句:

int u=010,v=0x10,w=10;

printf(〃%d,%d,%d\n〃,u,v,w);

则输出结果是()(本题分值:1分)

A

A.8,16,10

B.10,10,10

C.8,8,10

D.8,10,10

30.若有以下定义和语句:

char c1=′b′,c2=′e′;

printf(〃%d,%c\n〃,c2-c1,c2-′a′+′A′);

则输出结果是()(本题分值:1分)

B

A.2,M

B.3,E

C.2,E

D.输出项与对应的格式控制不一致,输出结果不确定

31.若有定义:int a[3][4];,()不能表示数组元素a[1][1]。(本题分值:1分)

D

A.*(a[1]+1)

B.*(a[1][1])

C.(*(a+1))[1]

D.*(a+5)

32.若i、j已定义为int型,则以下程序段中内循环体的总的执行次数是()(本题分值:1分)

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

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

A

A.20

B.24

C.25

D.30

33.若有以下定义和语句:

char *s1=〃12345〃,*s2=〃1234〃;

printf(〃%d\n〃,strlen(strcpy(s1,s2)));

则输出结果是()(本题分值:1分)

A

A.4

B.5

C.9

D.10

34.若有以下定义和语句:

int a[10]=,*p=a;

则不能表示a数组元素的表达式是()(本题分值:1分)

B

A.*p

B.a[10]

C.*a

D.a[p-a]

35.下面程序的输出结果是()(本题分值:2分)

C

A.k=3 a=2 b=3

B.k=3 a=3 b=2

C.k=2 a=3 b=2

D.k=2 a=2 b=3

36.下面程序的输出结果是()(本题分值:1分)

main()

{unsigned a=32768;

printf(〃a=%d\n〃,a);}

C

A.a=32768

B.a=32767

C.a=-32768

D.a=-1

37.执行下面语句后的输出结果为()(本题分值:1分)

int i=-1;

if(i<=0) printf(〃****\n〃);

else printf(〃%%%%\n〃)

D

A.****

B.%%%%

C.%%%%c

D.有语法错误,不能正确执行

38.对于条件表达式(M)?(a++):(a--),其中的表达式M等价于()(本题分值:1分)

C

A.M==0

B.M==1

C.M!=0

D.M!=1

39.下述程序段的输出结果是()(本题分值:1分)

int x=10;

int7nbspy=x++;

printf(〃%d,%d〃,(x++,y),y++);

A

A.11,10

B.11,11

C.10,10

D.10,11

40.若有以下的定义:

int a[]=,*p=a

则值为3的表达式是()(本题分值:1分)

A

A.p+=2,*(p++)

B.p+=2,*++p

C.p+=3,*p++

D.p+=2,++*p

41.假定所有变量均已正确说明,下列是程序段运行后x的值是()(本题分值:2分)

a=b=c=0;x=35;

if(!a) x--;

else if(b);

if(c) x=3;

else x=4;

B

A.34

B.4

C.35

D.3

42.在以下一组运算中,优先级最高的运算符是()(本题分值:2分)

C

A.<=

B.=

C.%

D.&&

43.若有以下定义和语句:

int w[2][3],(*pw)[3];pw=w;

则对w数组元素的非法引用是()(本题分值:2分)

A

A.*(w[0]+2)

B.*(pw+1)[2]

C.pw[0][0]

D.*(pw[1]+2)

44.若有以下程序片段: char str[ ]=〃ab\n\012\\\\〃; printf(〃%d〃,strlen(str));

上面程序片段的输出结果是()(本题分值:2分)

C

A.3

B.4

C.6

D.12

45.函数调用:strcat(strcpy(str1,str2),str3)的功能是()(本题分值:2分)

C

A.将串str1复制到串str2中后再连接到串str3之后

B.将串str1连接到串str2之后再复制到串str3之后

C.将串str2复制到串str1中后再将串str3连接到串str1之后

D.将串str2连接到串str1之后再将串str1复制到串str3中

46.以下对C语言函数的有关描述中,正确的是()(本题分值:2分)

A

A.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B.C函数既可以嵌套定义又可以递归调用

C.函数必须有返回值,否则不能使用函数

D.C程序中有调用关系的所有函数必须放在同一个源程序文件中

47.以下叙述中不正确的是()(本题分值:2分)

C

A.在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值

B.在C中,在调用函数时,实参和对应形参在类型上只需赋值兼容

C.在C中,外部变量的隐含类别是自动存储类别

D.在C中,函数形参可以说明为register变量

48.设有以下定义或语句,则输出的结果是(用small模式编译,指针变量占2个字节)()(本题分值:2分)

struct date

{long *cat;

struct date *next;

double dog;

}too;

printf(〃%d〃,sizeof(too));

D

A.20

B.16

C.14

D.12

49.设有定义:struct sk

data,*p;

若有p=&data;,则对data中的a域的正确引用是()(本题分值:2分)

B

A.(*p).data.a

B.(*p).a

C.p->data.a

D.p.data.a

50.以下对枚举类型名的定义中正确的是()(本题分值:2分)

B

A.enum a=;

B.enum a;

C.enum a=;

D.enum a;

二、填空题(每空2分,共40分)请将答案分别写在答题卡中序号至的横线上,答在试卷上不得分。

1、与十进制数101等值的二进制数为。(本题分值:2分)

1100101

2、DOS命令分为内部命令与外部命令,XCOPY命令属于命令。(本题分值:2分)

外部

3、设当前盘为A盘,当前系统提示符为“”,在不改变当前盘的情况下,显示C盘的当前目录路径,应使用命令。 (本题分值:2分)

CD C:

4、自动批处理文件名必须是。(本题分值:2分)

AUTOEXEC.BAT

5、设在当前盘当前目录下有两个文件W.TXT与P.TXT,现要将文件P.TXT连接到文件W.TXT的后面,若使用COPY命令,则完整的命令为。(本题分值:2分)

COPY W.TXT+P.TXT W.TXT

6、表示条件10<x<100或x<0的C语言表达式是。(本题分值:2分)

(x>10 x<100)||x<0

或(10<xx<100)||x<0

或x<0 ||(x>10x<100)

或0>x ||(10<xx<100)

7、以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最笾怠G胩羁铡?br #define N 3

#define M 4

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

{ int i,j,p;

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

{p=0;

for(j=1;j<M;j++)

if(x[i][p]<x[i][j]) ;

printf(〃The max value in line is %d\n〃,);

}

}

main()

;

;

}

(本题分值:6分)

p=j

x[i][p]

LineMax(x)

8、以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。

main()

{float x[1000],sum=0.0,ave,a;

int n=0,i;

printf(〃Enter mark:\n〃);scanf(〃%f〃,a);

while(a>= 0.0 n<1000)

{sum+=;x[n]=;

n++; scanf(〃%f〃,a);

}

ave= ;

printf(〃Output:\n〃);

printf(〃ave=%f\n〃,ave);

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

if() printf(〃%f\n〃,x[i]);

}

(本题分值:8分)

a

a

sum/n或sum/(float)n或sum/(double)n

x[i]<ave或!(x[i]>=ave)或ave>x[i]

9、执行以下程序,输入-10的结果是,输入5的结果是,输入10的结果是,输入30的结果是。

(本题分值:8分)

5

10

5

10、以下程序的功能是。

main()

int sum=0,i;

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

if(num[i]>0)

sum=num[i]+sum;

printf(〃sum=%6d〃,sum);

}

(本题分值:2分)

计算数组num中大于零的数据之和

11、以下程序可以把从键盘上输入十进制数(long型)以二到十六进制数的形式输出,请填空。

#include

main()

{char

b[16]=;

int c[64],d,i=0,base;

long n;

printf(〃Enter a number:\n〃); scanf(〃%1d〃,n);

printf(〃Enter new base:\n〃); scanf(〃%1d〃,base);

do

{c[i]=;

i++;

n=n/base;

}while(n!=0);

printf(〃The result is:\n〃);

for(--i;i>=0;--i)

{?d=c[i];

printf(〃%c〃,b);

}

}

(本题分值:4分)

n%base

[d]

(责任编辑:IT教学网)

更多

推荐站内动态文章