C整理题库(更新版)

更新时间:2024-03-17 12:37:01 阅读量: 综合文库 文档下载

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

第一章 C语言简介 一.选择题

(1) x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是( )。B

A.INPUT x、y、z;

B.scanf(“%d%d%d”,&x,&y,&z); C.scanf(“%d%d%d”, x, y, z); D.read(“%d%d%d”,&x,&y,&z); (2) 在一个C语言程序中( )B

A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现

C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置

(3) 下列关于C语言用户标识符的叙述中正确的是( )B A) 用户标识符中可以出现下划线和中划线(减号)

B) 用户标识符中不可以出现中划线,但可以出现下划线

C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头

D) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头 (4)构成一个C程序的是( )A

A.一个主函数和若干个非主函数 B.若干个主函数和若干个非主函数 C.一个主函数和最多一个非主函数 D.若干个主函数和最多一个非主函数

(5)合法的C语言标识符是( )。A

A._a1 B.a+b C.3abc D.AB,CD

二.填空题

1 在TRUBO C环境中用RUN命令运行一个C程序时,所运行的程序的后缀是____.exe __。

2 C语言源程序文件的后缀是_.c ____,经过编译后,生成文件的后缀是___.obj __,经过连接后,生成文件的后缀是__.exe ___。

第二章 数据类型及其运算 一.选择题

1 C语言中,字符(char)型数据在微机内存中的存储形式是

A) 反码 B) 补码 C) EBCDIC码 D) ASCII码 2 以下选项中正确的实型常量是

A)0 B)3. 1415 C)0.329×10(2)(10的2次方) D).871 3 C语言中运算对象必需是整型的运算符是 A)% B)/ C)! D)** 4 以下叙述中正确的是

A)a是实型变量,C允许进行以下赋值a=10,因此可以这样说:实型变量中允许存放整型值。

B)在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式。

C)执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0。

D)已有a=3,b=5。当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3。 答案:B

5 以下程序的输出结果是

A) 0 B) 1 C) 3 D)不确定的值 main() {

int x=10,y=3;

printf(\ }

答案:C

二. 填空题

1 若x为double型变量,请写出运算x=3.2,++x后表达式的值____4.2_和变量的值___ 4.2 __。

2 调用C语言对字符处理的库函数时,在#include命令行中应包括的头文件是___ string.h _。 3 C语句的最后用_

;_结束。

4 格式字符%d表示输出______十进制整数__________型数据,格式字符%f表示输出________单精度实数________型数据,格式字符%c表示输出________字符________型数据。 5 为了明确表示函数没有返回值,可用 _____void _______来进行函数类型定义。

6 设a=2,b=3,x=3.5,y=2.5,则表达式(float)(a+b)/2+(int)x%(int)y 的结果是______3.500000______。

7 表达式a=2*7,a*2的值是__________________。 28 8 写出下面程序的输出结果__________________。2,1 #include void main() { int a=1,b=2;

a=a+b;b=a-b;a=a-b; printf(\ }

第三章 控制语句

一、选择题

1 当输入9,2,11时,下列的程序运行结果为(A)

#include “stdio.h” void main() {int a,b,c,max;

printf(“please input three numbers a,b,c\\n”); scanf(“%d,%d,%d”,&a,&b,&c); max=a; if(max

printf(“max=%d”,max); }

A) max=11 B) max=10 C) max=9 D) max=2 2 下列的程序运行结果为(D)

#include “stdio.h” void main() {int x=2,y=–1,z=2; if(y<0) z=0; else z+=1;

printf(“%d\\n”,z); }

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

3 C语言中while和do-while循环的主要区别是___A_____ A)do-while的循环体至少无条件执行一次 B)do-while允许从外部转到循环体内

C)while的循环控制条件比do-while的循环控制条件严格 D)do-while的循环体不能是复合语句

4 以下关于for循环的说法不正确的是____A____

A) for循环只能用于循环次数已经确定的情况下 B) for循环是先判断表达式,后执行循环体语句 C)for循环中,可以用break语句跳出循环体

D)for循环语句中,可以包含多条语句,但要用花括号括起来 5 以下程序的输出结果是___B_____ #include void main() {int i;

For(i=1;i<=5;i++)

{if(i%2!=0) printf(\ else continue; printf(\}

Printf (\

A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$

6 设x和y 均为整型变量,则执行下面的循环后, y的值为____C____ 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

7 以下程序输出的结果是_____B_______ for(a=8;a>0;a--)

{ if(a%3==0) {printf(\}

A) 7,4,1 B) 5,2 C) 8,6,3 D) 8,7,5,4 8 以下程序段的输出结果是C

A) 15 B) 14 C) 不确定 D) 0 main()

{ int i,sum;

for(i=1; i<6; i++) sum+=sum; printf(\ }

9 以下叙述正确的是

A) do_while语句构成的循环不能用其它语句构成的循环来代替。 B) do_while语句构成的循环只能用break语句退出。

C) 用do_while语句构成循环时,只有在while后的表达式为非零时结束循环。

D) 用do_while语句构成循环时,只有在while后的表达式为零时结束循环。 答案:D 二. 填空题

1 在c语言中,要表示条件:55&&a<35||a<2______________。

2 写出下面程序的运行结果__________________。11111 #include Void main() {

printf(“%d”,2<5&&4<8); printf(“%d”,2<3&&5<7); printf(“%d”,(3<6));

printf(“%d”,!(2<6)||(4<7)); printf(“%d”,(6<=9)&&(5<=8)); }

3 输入字母B时,下面的程序的输出结果为____________70-79

60-69

#include Void main()

char cha;

scanf(“%c”,&cha);

cha=(cha>=97&&cha<=122)?cha-32:cha; switch(cha) {

case ?A?:printf(“80-100\\n”); case ?B?:printf(“70-79\\n”);

case ?C?:printf(“60-69\\n”);break; case ?D?:printf(“0-59\\n”); break;

default : printf(“error\\n”); break; }} 4 以下程序输出的结果是___s=4_______ #include void main() { int s=0,k;

for(k=5;k>=0;k--) {switch(k) {case 1:

case 5: s++;break; case 3:

case 4:break;

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

printf(\

5 以下程序的功能是,从键盘上输入若干个学生成绩,统计出最高成绩和最低成绩并输出,输入负数时结束,填空。 #include void main()

{ float x, max, min; scanf(\ max=min=x;

while( x>=0 )

{ if(x>max) max=x;

if( x

printf(\

6 以下程序的运行结果是________41________

#include void main() { int a=0,i;

for(i=0;i<5;i++) {switch(i) { case 0:

{int z; return z;} C.fun(x,y)

{int x,y; double z; z=x+y; retun z;}

D.double fun(int x,int y) {double z;

z=x+y; return z;}

8 C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是(B ) A.地址传递 B.单向值传递

C.由实参传给形参,再由形参传回给实参 D.由用户指定传递方式 9 C语言规定,函数返回值的类型是由( ) A.return语句中的表达式类型所决定 B.调用该函数时的主调函数类型所决定 C.调用该函数时系统临时决定

D.在定义该函数时所指定的函数类型所决定 10 以下正确的描述是( B )在C语言程序中 A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可嵌套,但函数的调用可以嵌套 C.函数的定义和函数的调用均不可以嵌套 D.函数的定义和调用均可以嵌套

11 C语言可执行程序从什么地方开始执行?( )C

A. 程序中第一条可执行语句 B. 程序中第一个函数

C. 程序中的main函数 D. 包含文件中的第一个函数 12 以下程序的输出结果是___C

A) 11 B) 20 C) 21 D) 31 #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”, r ); }

二、 填空题

1 以下程序的输出结果是__4__。 fun1(int a,int b) { int c;

a+=a; b+=b; c=fun2(a,b); return c*c; }

fun2(int a,int b) { int c;

c=a*b%3; return c; }

main()

{ int x=11,y=19;

printf(\ }

2 以下函数用以求x的y次方。请填空。 double fun(double x, int y) { int i; double z;

for(i=1; i__<=y ___; i++) z=__ z*x ___; return z; }

3 以下程式序的运行结果是_____________i=7;j=6;x=7

i=2;j=7;x=5

#include void main()

{ int i=2,x=5,j=7; fun(j,6);

printf(“i=%d;j=%d;x=%d\\n”,i,j,x); }

fun(int i,int j) { int x=7;

printf(“i=%d;j=%d;x=%d\\n”,i,j,x); }

4 以下程序的运行结果是_____________ max is 2 #include void main()

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

c=max(a,b);printf(“max is %d\\n”,c); }

max(int x,int y)

{ int z; z=(x>y)?x:y; return(z); }

5 以下程序的运行结果是_____________x=2 y=3 z=0

x=4 y=9 z=5 x=2 y=3 z=0

#include void main()

{ int x=2,y=3,z=0;

printf(“x=%d y=%d z=%d\\n”,x,y,z); add(x,y,z);

printf(“x=%d y=%d z=%d\\n”,x,y,z); }

add(int x,int y, int z)

{ z=x+y; x=x*x; y=y*y;-

printf(“x=%d y=%d z=%d\\n”,x,y,z); }

6 以下程序的输出结果是______。31

#include fun(int x,int y,int z) {z=x*x+y*y;} void main() {int a=31; fun(5,2,a); printf(“%d”,a); }

?7 以下程序的输出结果是_______。8,17

#include void main()

{ int k=4,m=l,p;

p=func(k,m);printf("%d,",p); p=func(k,m);printf("%d\n",p); }

func(int a,int b)

{ static int m=0,i=2; i+=m+l:m=i+a+b; return(m); }

8 下面函数用来求两个整数之和,并通过形参传回两数相加之和值,请填空。 int add(int x,int y,______ int ____ z) {___ z _____=x+y ;

__ return z;_____ }

9 一个函数的定义包含__函数首部__和__函数体__两个部分。

10 函数的使用同变量的使用原则一样,必须满足 先定义后使用 的原则。

第五章题库还包括

课后习题 一、选择题 1、2、3、4 、5、6 二、填空题1、2、3、4、5

第六章 指 针

一、 选择题

1 若有定义:int x,*pb; 则以下正确的赋值表达式是 A

A) pb=&x B) pb=x C) *pb=&x D) *pb=*x

2? 以下程序的输出结果是 B

A) 5,2,3 B) -5,-12,-7 C) -5,-12,-17 D) 5,-2,-7 void sub(int x,int y,int *z) {*z=y-x; } main() {int a,b,c;

sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf(\ }

3 以下程序的输出结果是 C

A) 4 B) 6 C) 8 D) 10 main()

{ int k=2,m=4,n=6;

int *pk=&k,*pm=&m,*p; *(p=&n)=*pk*(*pm); printf(\ }

4 以下程序的输出结果是C

A) 9.000000 B) 1.500000 C) 8.000000 D) 10.500000 void sub(float x,float *y,float *z) { *y=*y-1.0; *z=*z+x; }

main()

{ float a=2.5,b=9.0,*pa,*pb; pa=&a,pb=&b; sub(b-a,pa,pa); printf(\ }

5 已知:int *p, a;则语句\中的运算符\的含义是____ D ______ 。 A.位与运算 B.逻辑与运算 C.取指针内容 D.取变量地址

6 若有定义:int A[5]; 则A数组中首元素的地址可表示为:____ C _________. A .&A B.A+1 C.A D.&A[1]

二、填空题

1 定义语句int (*pa)[3]的含义为:定义pa指向包含3个元素的一维整形数组,定义语句int *pa [3]的含义为:定义一个包含3个元素的指针数组pa 。

第六章题库还包括

课后习题 一、选择题 1、2、3、5 二、填空题1、2、4、5

编程题

第3章上机题:一、选择结构程序设计1、2、3、4、5

二、循环结构程序设计1、2、3、5、6 第4章上机题:一、一维数组1、2、3、4、5

本文来源:https://www.bwwdw.com/article/09d8.html

Top