C语言程序设计
一、选择题(共40分,每小题2分)
1、以下叙述不正确的是(D)
A、一个C源程序可由一个或多个函数组成
B、一个C源程序必须包含一个main函数
C、C程序的基本组成单位是函数
D在C程序中,注释说明只能位于一条语句的后面
2、下列四个选项中,是不合法的用户标识符的选项是(B)
A、abc
B、12ACC sunD A
3、设有语句inta=4 ;则执行了语句a+=a-=a*a后,变量a的值是(A)
A -24B、OC 4D 16
4、下列运算符中优先级最高的是(B)
A、<B +C &&D ==
5、在C语言中,运算对象必须是整型数的运算符是(A)
A、%
B、/
C、%和/ D +
&以下关于运算符的优先顺序的描述正确的是(C)
A、关系运算符<算术运算符<赋值运算符<逻辑与运算符
B逻辑与运算符<关系运算符<算术运算符<赋值运算符
C、赋值运算符V逻辑与运算符<关系运算符<算术运算符
D算术运算符<关系运算符<赋值运算符<逻辑与运算符
7、在C语言中,如果下面的变量都是int类型,则输出的结果是(C)
sum=pad=5 pAd=sum++ pAd++, ++pAc;printf(“%d\n ”,pad);
A 7
B 6C、5D 4
8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)
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)
voidmai n()
{intm ,n;
scanf(“ %2d%3”,&m &n);
printf(“ m=%dn=%d\n,m, n);
}
A m=23n=45
B m=234n=56
C m=23n=456
D 语句有错误
10、若运行时,给变量x输入12,则以下程序的运行结果是(A)
mai n()
{intx ,y;
scanf(“ %d ,&x);
y=x>12? x+10: x-12 ;
printf( “ %d\n”,y);
}
A O
B 22
C 12
D 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)
mai n()
{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, 9
B 1, 4, 7C
C 3, 5, 7
D 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 (i nta , intb , intc)
{a=456 ;b=567; c=678;
}
voidmai n()
{intx=10 , y=20, z=30;
z=fun(x , y, z);
printf( “ %d %d %d\n”,z , y , x);
}
A 30, 20 , 10
B 10 , 20 , 30
CC 10 , 30 , 50D 10 , 30 , 40
16、以下说法正确的是(A)
如果在一个函数中的复合语句中定义了一个变量,则该变量A只在该复合语句中有效
B在该函数中有效
C在本程序范围内有效
D为非法变量
17、以下函数调用语句中含有的实参个数为(B)
func((exp1 , exp2 , exp3), (exp4 , exp5));
A 1
B 2C
C 4
D 5
18、在C语言程序中,以下说法正确的是(B)。
A函数的定义可以嵌套,但函数的调用不可以嵌套
B函数的定义不可以嵌套,但函数的调用可以嵌套
C函数的定义和函数的调用都不可以嵌套
D函数的定义和函数的调用都可以嵌套
19、请读程序
longfun 5(i ntn)
{Iongs ;
if((n==1)||( n==2))
s=2;
else
s=n+fun5(n-1);
return(s);
}
mai n()
{Iongx ;
x=fun5(4);
printf(%ld\n ” ,x);
}
上面的程序的运行结果是(A)
A 9
B 10
C 12
D 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的值为咚。
2、C语言中三种逻辑运算符为&& U ______ 、__!_。
3、在C语言中,逻辑“真”值用1表示,逻辑“假”值用0表示。
4、如a是int型变量,则计算表达式a=25/3%3后a的值为2。
5、若a=1,b=4,c=3,则表达式!(a<b)&&!c||1 的值是__1_。&当a=3,b=2,c=1时,表达式f=a>b>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
mai n()
{inty=10 ;
for( ;y>0;y--)
if(y%3==0)
{printf( “ %d ,--y );
continue ;
}
}
2、有以下程序段,若输入1298,则输出结果是8921 mai n()
{
intn1 ,n2;
scanf( “ %d ,&n2);
while( n2!=0)
{n仁n 2%10?
n2=n2/10;
printf( “ %d , n1);
c语言程序分析题及答案
}
3、以下程序的输出结果是d仁7d2=5
#include “ stdio.h ”
fun (i ntb)
{intd=5 ;
d+=b++;
printf( “ d1=%d\n”,d);
}
mai n()
{inta=2 , d=3;
Fun(a);
d+=a++;
printf( “ d2=%d\n”,d);
}
4、以下程序的输出结果是k=5
#include “stdio.h ”
f(intn)
{switch(g)
{case0 : return0 ;
case1:
case2: return1 ;
}
return(f(g-1)+f(g-2)) ;
}
mai n()
{intk ;
k=f(5);
printf( “ k=%d , k);
}
四、编程题.(共20分,每小题10分)
1、编程求1+2+3+••…+99+100.
2、输入一同学成绩,判断其成绩等级。等级范围为:
90以上等级为A
89~80等级为B
79~70等级为C
69~60等级为D
60以下等级为E
C语言程序设计参考答案一、选择题
1-------- 5DBABA
6-------- 10CCBCA
11 ------ 15ACCCA
16 ------ 20ABBAD
二、填空题
1)、122)、&&|| ! 3)、10
4)、25)、16)、07)、whilefor
8)、249)、08010)、函数头函数体声明执行
三、程序分析
1)、8522)、89213)、d1=74)、k=5 d2=5
四、编程
1、#include<stdio.h>
mai n()
{in tsum=0,i;
for(i=1;iv=100;i++)
sum二sum+l;
printf( “1+2+ ....... n” ,sum);
}
2、
#in clude<stdio.h>
main ()
{floatscore;
scanf( “%f,&score);
switch(score/10)
{case10:
case9:printf( “yourscoreisA n”);break;
case8:printf( “yourscoreisB n”);break;
case7:printf( “yourscoreisC n”);break;
case6:printf( “yourscoreisD n”);break;
default:printf( “yourscoreisE n”);
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。