C语言程序设计习题及答案.docx
《C语言程序设计习题及答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题及答案.docx(9页珍藏版)》请在冰点文库上搜索。
C语言程序设计习题及答案
C语言程序设计
一、选择题(共40分,每小题2分)
1、以下叙述不正确的是()
A、一个C源程序可由一个或多个函数组成
B、一个C源程序必须包含一个main函数
C、C程序的基本组成单位是函数
D、在C程序中,注释说明只能位于一条语句的后面
2、下列四个选项中,是不合法的用户标识符的选项是()
A、abcB、12ACC、sunD、A2
3、设有语句inta=4;则执行了语句a+=a-=a*a后,变量a的值是()
A、-24B、0C、4D、16
4、下列运算符中优先级最高的是()
A、
5、在C语言中,运算对象必须是整型数的运算符是()
A、%B、/C、%和/D、+
6、以下关于运算符的优先顺序的描述正确的是()
A、关系运算符<算术运算符<赋值运算符<逻辑与运算符
B、逻辑与运算符<关系运算符<算术运算符<赋值运算符
C、赋值运算符<逻辑与运算符<关系运算符<算术运算符
D、算术运算符<关系运算符<赋值运算符<逻辑与运算符
7、在C语言中,如果下面的变量都是int类型,则输出的结果是()
sum=pad=5;pAd=sum++,pAd++,++pAd;
printf(“%d\n”,pad);
A、7B、6C、5D、4
8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()
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<回车>,下面程序的输出结果是:
()
voidmain()
{intm,n;
scanf(“%2d%3d”,&m,&n);
printf(“m=%dn=%d\n”,m,n);
}
A、m=23n=45B、m=234n=56C、m=23n=456D、语句有错误
10、若运行时,给变量x输入12,则以下程序的运行结果是()
main()
{intx,y;
scanf(“%d”,&x);
y=x>12x+10:
x-12;
printf(“%d\n”,y);
}
A、0B、22C、12D、10
11、C语言中while和do-while循环的主要区别()
A、do-while的循环体至少执行一次
B、while的循环控制条件比do-while的循环控制条件严格
C、do-while允许从外部转到循环体内
D、do-while的循环体不能是复合语句
12、以下对二维数组的正确说明的语句是()
A、inta[3][]B、floata(3,4)C、doublea[3][4]D、floata(3)(4)
13、以下程序的输出结果是()
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进行正确初始化的语句是()
A、inta[10]=(0,0,0,0,0);B、inta[10]={};
C、inta[10]={0};D、inta[10]={10*1};
15、以下程序执行后的输出结果是:
()
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、只在该复合语句中有效
B、在该函数中有效
C、在本程序范围内有效
D、为非法变量
17、以下函数调用语句中含有的实参个数为()
func((exp1,exp2,exp3),(exp4,exp5));
A、1B、2C、4D、5
18、在C语言程序中,以下说法正确的是()。
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、9B、10C、12D、18
20、若有下面的变量定义,以下语句中合法的是()。
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语言中三种逻辑运算符为、____、___。
3、在C语言中,逻辑“真”值用表示,逻辑“假”值用表示。
4、如a是int型变量,则计算表达式a=25/3%3后a的值为。
5、若a=1,b=4,c=3,则表达式!
(a
c||1的值是___。
6、当a=3,b=2,c=1时,表达式f=a>b>c的值是。
7、常见的循环语句有语句、do-while语句和语句。
8、若有定义:
doublex[3][5];则x数组中行下标的下限为_____,列下标的下限为_____。
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、以下程序的输出结果是
main()
{inty=10;
for(;y>0;y--)
if(y%3==0)
{printf(“%d”,--y);
continue;
}
}
2、有以下程序段,若输入1298,则输出结果是
main()
{
intn1,n2;
scanf(“%d”,&n2);
while(n2!
=0)
{n1=n2%10;
n2=n2/10;
printf(“%d”,n1);
}
3、以下程序的输出结果是
#include“”
fun(intb)
{intd=5;
d+=b++;
printf(“d1=%d\n”,d);
}
main()
{inta=2,d=3;
Fun(a);
d+=a++;
printf(“d2=%d\n”,d);
}
4、以下程序的输出结果是
#include“”
f(intn)
{switch(g)
{case0:
return0;
case1:
case2:
return1;
}
return(f(g-1)+f(g-2));
}
main()
{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语言程序设计参考答案
一、选择题
DBABA
6---------10CCBCA
ACCCA
ABBAD
二、填空题
1)、122)、&&||!
3)、10
4)、25)、16)、07)、whilefor
8)、249)、08010)、函数头函数体
声明执行
三、程序分析
1)、8522)、89213)、d1=74)、k=5
d2=5
四、编程
1、#include“”
Main()
{intsum=0,I;
For(i=1;i<=100;i++)
Sum=sum+I;
Printf(“1+2+……+100=%d\n”,sum);
}
2、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”);
}
}
¥—精心搜集整理,只为你的需要