C语言程序设计期末复习题

更新时间:2023-10-14 14:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C语言程序设计期末复习题

一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。 1.计算机能够自动按照人们的意图进行工作的最基本思想是( ) A.采用逻辑部件 B.存储程序和数据 C.控制代码 D.总结结构

2.若要显示C盘TC子目录下名为EXAM.C的内容一定成功的命令是( ) A.TYPE C:\\TC\\EXAM B.TYPE EXAM.C

C.COPY CON C;\\TC\\EXAM.C D.COPY C:\\TC\\EXAM.C CON 3.编辑程序的功能是( )

A.修改并建立源程序 B.将源程序翻译成目标程序 C.调试程序 D.命令计算机执行指定的程序 4.设int a=2,b;则执行b=a&&1;语句后,b的结果是( )

A.0 B.1 C.2 D.3 5.逗号表达式(a=3*5,a*4),a+15的值是( )

A.15 B.60 C.30 D.75 6.在C程序中,设一表达式中包含有int,long, unsigned和char类型的变量和数据,则表达式最后的运算结果类型是( )

A.int B.char C.unsigned D.long 7.下面程序段的运行结果是( ) main ( )

{int a=11,b=10,c=0; a/=b+(b&&c);

printf(″%d\\n″a);}

A.0 B.1 C.1.1 D.11

8.两次运行下面程序,如果从键盘上分别输入6和4,则程序的输出结果是( ) main ( ) {int x;

scanf(″%d″,&x);

if(x++>5) printf(″%d″,x); else printf(″%d\\n″,x-1);}

A.7和5 B.6和3 C.7和4 D.6和4 9.表达式y<3? -1.0∶1的值的类型应是( )

A.不确定 B.实型 C.整型 D.无符号整型 10.语句while(!e);中,条件!e等价于( )

A.e=0 B.e!=0 C.e!=1 D.e=0 11.下面程序的运行结果是( ) main( )

{int i=1,sum=0; lop:sum=sum+i ; i=i+2;

if(i<6)goto lop;

printf (″sum=%d\\n″,sum);}

A.suu=4 B.sum=9 C.sum=16 D.sum=25

12.若定义int x[10];则Turbo C编译系统为该数组分配( )个字节存储单元。 A.10 B.11 C.20 D.21 13.以下对一维数组a中的所有元素进行正确初始化的是( ) A.int a[10]==(0,0,0,0); B.int a[10]={ };

C.int a[ ]={0}; D.int a[10]={10*2};

14.若有定义:char c[10];从键盘输入“LiFang”,则正确的函数引用是( ) A.scanf(″%c″,&c[10]); B.gets(c);

C.scanf(″%s″,&c); D.gets(c[10]); 15.若有如下函数定义:

add(float x, float y) {??}

则下列说法正确的是( )

A.函数返回值类型不确定 B.函数返回值是float型 C.函数返回值是int型 D.函数返回值是void型 16.下面程序的运行结果是( ) fun(a,b) int a,b; {static c=1; if (c==1) a=b+c; else

a=b-c c++;

printf(″a=%d,b=%d\\n″,a,b);} main( ) {int a=3, b=5; fun(a,b);

fun(a+1,b-1);}

A.a=6,b=5 B.a=5,b=5 C.a=6,b=5 D.a=6,b=6 a=5,b=5 a=4,b=4 a=2,b=4 a=5,b=3 17.若输入5和2后,下面程序的运行结果是( ) void swap(x1,x2) int *x1, *x2; {int *x;

x=x1;x1=x2;x2=x;} main( )

{int a,b,*p1,*p2;

scanf(″%d,%d″,&a,&b); p1=&a,p2=&b;

if(a>b) swap(p1,p2);

printf(″%d,%d\\n″,*p1,*p2);}

A.5,2 B.5,5 C.2,5 D.2,2 18.若有定义int *x[3],b[10];则正确的赋值语句是( )

A.x=b[0]; B.x=b; C.x[0]=b[0]; D.x[0]=&b[0]; 19.下面程序的运行结果是( ) #define ADD(x) x+x void mian( ) {int a=2,b=1;

prinft(″%d\\n″,3*ADD(a+b));}

A.9 B.10 C.12 D.18

20.则FILE *fp;char ch;ch=fgetc(fp);可以推知fgetc函数的原型可以是( ) A.void fgetc( ); B.char fgetc( )

C.char fgetc(int); D.int fgetc(FILE *fp);

二、多项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的五个选项中有二至五个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。多选、少选、错选均无分。 21.下面哪些是组成MS—DOS操作系统的模块( )

A.COMMAND.COM B.IO.SYS C.MSDOS.SYS D.Turbo C E.BOOT

22.与十进制141等值的数是( )

A.(10001101)2 B.(10001110)2 C.(215)8 D.(8D)16 E.(8E)16

23.设a=1,b=-3,c=0,下面表达式为0的是( )

A.b>a&&aa)>(b>5) D.!a&&b‖a&&(c+1) E.(1,2,5)==(1,3,3) 24.在下列各说法中,正确的说法有( ) A.break语句只能用于循环语句

B.break语句只能用于switch语句和循环语句 C.break语句可用于switch语句 D.break语句可用于循环语句

E.break语句不能用于switch语句

25.若有如下定义及赋值( ) int x=9,*p,*p1; p=&x;p1=p;

则可以输出变量x的地址的语句是

A.printf(″%d\\n″,x) B.printf(″%d\\n″,*p); C.printf(″%d\\n″,p1); D.printf(″%d\\n″,&x); E.printf(″%d\\n″,*p1);

26.有函数定义如下:( ) void ss(x) int *x; {??}

则主函数中引用函数ss的正确形式是

A.main( ) B.main( ) C.main( )

{int a[5]; {int a[5].*p=a; {int a[5]; ? ? ?

ss(a); ss(p); ss(a[0]); ? } ? } ? } D.main( ) E.main( )

{int a[5],*p=a; {int a[5],*p=a; ? ?

ss( p[0]); ss(*p); ? } ? }

27.若有定义int x[4][5],(*p)[5];及赋值p=x;则下列表示数组地址的形式中,地址值相等的是( )

A.*(x+1) B.x+1 C.x[2] D.P+1 E.*(p+1)

28.设有定义int a[3][6],*p;则正确的指向数组元素的指针赋值是( ) A.p=*a; B.p=a[0]; C.p=a D.p=a+1; E.p=*(a[0]+1); 29.有以下定义和语句:( )

struct stud {char name [10]; int age;} struct stud s, *ps; ps=&s;

则下面正确的语句是

A.s={″Mary″,30} B.(*ps)→age=30 C.s.name=″Mary″; D.scanf(″%d″,&ps→age); E.strcpy(ps→name,″Mary″); 30.设有int a=123;a^0xff00可以使a的( )

A.低字节取反 B.高字节取反 C.低字节不变 D.高字节不变 E.高低字节都取反 三、填空题(本大题共10小题,每小题1分,共10分)

31.设字长为八位,十进制—100在机内的存储形式是______。 32.C语言程序由main( )函数开始执行,应在______函数中结束。

33.在格式输出语句中,用于带符号的十进制长整型输出的格式符是______。 34.当a=2,b=3,c=1时,执行以下程序段后,输出结果是______。 if(a>b) if(a>c)

printf(″%d\\n″,a); else

printf (″%d\\n″,b); printf(″end\\n″);

35.设i,n,p均为int型变量,则执行以下程序段后,p的值为______。 p=1;n=4;

for(i=1;i<=n;i++) p=p*i;

36.以下程序的输出结果是______。 main ( )

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

37.所谓变量的______就是可引用变量的范围,通常取决于变量被定义的位置。 38.设p1,p2为同类型的指针变量,若有p1==p2,则说明p1与p2指向______。 39.在union std {int fjh;

char addr [30]; } wang;

中,wang是具有″union std″共用体类型的______。

40.字符串写函数fputs( )的格式是fputs(str,fp);它的功能是______。

四、简答题(本大题共4小题,第41、42题每小题2分,第43、44题每小题3分,共10分) 41.描述一个C程序开发过程的流程图。

42.将下列条件语句逻辑关系写得更清晰一些(必要时可把if嵌套的有关部分写成复合语句)。 if(a

if(a

43.定义char *str=″program″;和定义char str[]=″program″;是等价的吗?为什么?

44.简述feof函数返回值的含义。

五、阅读分析题(本大题10小题,每小题2分,共20分) 45.阅读下列程序,写出运行结果。 main( )

{unsigned a; int b=-1; a=b;

printf(″%u\\n″,a); printf(″a=%x″,a);} 46.阅读下列程序,并回答问题: 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; case 3:a++;b++;}

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

请分析该程序的执行过程并写出运行结果。

第47、48、49题请参阅下面程序,并回答相关问题: #define N 8 main( )

{int a=1,b-1,i;

for (i=1,i<=N/2;i++)

{printf(″] ]″,a,b); if(i%2==0) printf(″\\n″); a=b+a;b=a+b;}}

47.printf(″\\n″);语句执行多少次? 48.程序输出结果是什么?

49.若把if(i%2==0)print(″\\n″);语句删除,程序输出效果与48题有何不同?

第50、51、52题请参阅下面程序,并回答相关问题。 main( ) {int num;

scanf(″%d″,&num); if(prime(num))

printf(″%d is prime number″,num); else

printf(″%d is not a prime number″,num);} int prime(num) int num; {int flag =1,n;

本文来源:https://www.bwwdw.com/article/67mf.html

Top