C语言程序设计习题集7-10套 下载本文

C语言程序设计试题集(第7套)

一、单项选择题(每题3分,共30分) 1、以下叙述中正确的是

A)C语言的源程序不必通过编译就可以直接运行

B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C)C源程序经编译形成的二进制代码可以直接运行 D)C语言中的函数不可以单独进行编译

2、 以下符合C语言语法的实型常量是

A)1.2E0.5 B)3.14.159E C).5E-3 D)E15

3. 若a=-14,b=3,则条件表达式 a

4、在c语言中,下面对函数不正确的描述是。

A) 当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改

变。 B) 允许函数递归调用。 C) 函数形参的作用范围只是局限于所定义的函数内。 D) 用户自定义函数必须位于主函数之前。

5、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,a和b,当从第一列开始输入数据时,正确的数据输入方式是 (注: _ 表示空格) int a1,a2; char c1,c2;

scanf(\

A) 10a_20_ B) 10_a_20_b C) 10a20b D) 10a20_b

6.、若有说明:int a[10]; 则对a数组元素的正确引用是

A) a[10] B) a[3.5] C) a[5-3] D) a[-1]

7、以下能对一维数组a进行正确初始化的语句是 A) in a[10]=(0,0.0,0,0); B) int a[10]={}; C) int a[]={0};

D) int a[10]={10*1};

E) 8、以下关于do-while循环的不正确描述是 A) do-while的循环体至少执行一次 B) do-while循环由do开始,用while结束,在while(表达式)后面不能写

分号 C) 在do-while循环体中,一定要有能使while后面表达式的值变为零(\

假\的操作

D) do-while的循环体可以是复合语句

E) 9、以下正确的函数形式是

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; }

10.以下程序段

x=-1; do x=x*x; while(! x); A) 是死循环 B) 循环执行二次 C) 循环执行一次 D) 有语法错误

二、填空题(每题2分,共20分) 1、编写C表达式:|a-b|≤10-6(1)

2、假定int m,k=10; 在执行语句 m=3*k--;后,m,k的值分别是多少?(2)

3、写出用%.3f格式输出的数据2.99999e-3形式。(3)

4、假定int x;char y,z; 给定下面的输入:96 97 98

执行语句 scanf(“%c%c%d”,&x,&y,&z);后,x,y,z的值分别是多少?(4)

5、写出下面程序的执行结果:(5) if(7<8)printf(“Hello”); printf(“Threr”);

6、写出语句for(j=1;j<=10;j+=2)printf(“*”);的执行结果:(6)

1

7、设int list[6],j;

执行下面代码后,存储在list中的情况是什么?(7) for(j=0;j<6;++j){ list[j]=2*j+5;

if(j%2==0)list[j]=list[j]-3; }

8、写出下面程序的输出结果:(8) int a,b;

char s[3][4]={“---”,”---”,”---”}; for(a=2;a>=0;--a)s[a][a]=?0?;

for(a=0;a<3;++a)s[a][(a+1)%3]=?1?; for(a=0;a<3;++a){

for(b=0;b<3;++b)printf(“%c”,s[a][b]); printf(“\\n”); }

9、设有函数定义: int p(int j) { int sum=1; do{

if(j>0)sum*=2; --j;

}while(j>0); return sum; }

语句printf(“%d”,p(6));输出什么?(9)

10、设有函数定义: int test(int u,int v) { if(u==v)return u; else if(u>v)return u+v; else return test(u+1,v-1); }

语句printf(“%d”,test(5,10));输出什么?(10)

三、程序分析填空题(每空2分,共20分) 1、打印如下形式的九九乘法表

main()

{ int x,y;

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

{ for(y=1; (2) ; y++)

2