C语言程序设计试题及参考答案 下载本文

精心整理

C语言程序设计一、选择题(共40分,每小题2分) 1、以下叙述不正确的是(D)

A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数

D、在C程序中,注释说明只能位于一条语句的后面

2、下列四个选项中,是不合法的用户标识符的选项是(B) A、abcB、12ACC、sunD、A 3、设有语句inta=4;则执行了语句a+=a-=a*a后,变量a的值是(A) A、-24B、0C、4D、16 4、下列运算符中优先级最高的是(B) A、

A、INPUTx、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); 9、假定从键盘输入23456<回车>,下面程序的输出结果是:(C) voidmain() {intm,n;

scanf(“-=”,&m,&n); printf(“m=%dn=%d\\n”,m,n); }

A、m=23n=45B、m=234n=56C、m=23n=456D、语句有错误

10、若运行时,给变量x输入12,则以下程序的运行结果是(A) main() {intx,y;

scanf(“%d”,&x); y=x>12?x+10:x-12; printf(“%d\\n”,y); }

精心整理

A、0B、22C、12D、10

11、C语言中while和do-while循环的主要区别(A) A、do-while的循环体至少执行一次

B、while的循环控制条件比do-while的循环控制条件严格 C、do-while允许从外部转到循环体内 D、do-while的循环体不能是复合语句

12、以下对二维数组的正确说明的语句是(C)

A、inta[3][]B、floata(3,4)C、doublea[3][4]D、floata(3)(4) 13、以下程序的输出结果是(C) main()

{inti,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf(“%d”,x[i][2-i]); }

A、1,5,9B、1,4,7C、3,5,7D、3,6,9 14、以下能对一维数组a进行正确初始化的语句是(C) A、inta[10]=(0,0,0,0,0);B、inta[10]={}; C、inta[10]={0};D、inta[10]={10*1}; 15、以下程序执行后的输出结果是:(A) intfun(inta,intb,intc) {a=456;b=567;c=678; }

voidmain() {intx=10,y=20,z=30; z=fun(x,y,z); printf(“%d,%d,%d\\n”,z,y,x); }

A、30,20,10B、10,20,30 C、10,30,50D、10,30,40 16、以下说法正确的是(A) 如果在一个函数中的复合语句中定义了一个变量,则该变量 A、只在该复合语句中有效 B、在该函数中有效 C、在本程序范围内有效 D、为非法变量 17、以下函数调用语句中含有的实参个数为(B) func((exp1,exp2,exp3),(exp4,exp5)); A、1B、2C、4D、5

18、在C语言程序中,以下说法正确的是(B)。 A、函数的定义可以嵌套,但函数的调用不可以嵌套 B、函数的定义不可以嵌套,但函数的调用可以嵌套 C、函数的定义和函数的调用都不可以嵌套 D、函数的定义和函数的调用都可以嵌套 19、请读程序 longfun5(intn) {longs;

if((n==1)||(n==2))

精心整理 s=2; else

s=n+fun5(n-1); return(s); }

main() {longx; x=fun5(4);

printf(%ld\\n”,x); }

上面的程序的运行结果是(A) A、9B、10C、12D、18 20、若有下面的变量定义,以下语句中合法的是D)。 inti,a[10],*p; A、p=a+2;B、p=a[5];C、p=a[2]+2;D、p=&(i+2); 二、填空题(共20分,每空1分) 1、若a是int型变量,且a的初值为6,则计算表达式a+=(b=4)+(c=2)后,a的值为12。 2、C语言中三种逻辑运算符为&&、||____、__!_。 3、在C语言中,逻辑“真”值用1表示,逻辑“假”值用0表示。 4、如a是int型变量,则计算表达式a=25/3%3后a的值为2。 5、若a=1,b=4,c=3,则表达式!(ab>c的值是0。 7、常见的循环语句有while语句、do-while语句和for语句。 8、若有定义:doublex[3][5];则x数组中行下标的下限为2___,列下标的下限为__4__。 9、若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是_______,a[2][2]得到的初值是,a[0][2]得到的初值是。 10、在C语言中,一个函数由函数头和函数体两部分组成,函数体一般包括声明部分和执行部分。 三、程序分析题(20分,每题5分) 1、以下程序的输出结果是852 main() {inty=10; for(;y>0;y--) if(y%3==0) {printf(“%d”,--y); continue; } }

2、有以下程序段,若输入1298,则输出结果是8921 main() {

intn1,n2;

scanf(“%d”,&n2); while(n2!=0) {n1=n2?;

n2=n2/10;

printf(“%d”,n1);