C语言练习题
1. 以下选项中,合法的一组C语言数值常量是( )
A)028 .5e-3 .0xf
B)12. OXa23 4.5e0
C).177 4e1.5 Oabc
D)0x8A 10,000 3.e5
2. 设整型变量x为7,则以下各表达式的值分别是( )。
(1)y=x%3 (2) y=(++x)/3 (3) y=x/3 (4) y=8-(--x)
3. 若已定义int x=5, y=9, z; 语句z=x>y; 运行后z的值为( )。
4. ( )为正确的变量名。
A. int B. –k15 C. k_5 D. k.jeep
5. 语句x=5%4+(4/5); 运行后,整型变量x的值为( )。
6. 若有定义 int i=1, j=9; 则表达式(++j) * (i--)的值为( )。
A. 10 B. 9 C. 8 D. 0
8. 判定逻辑值为“真”的最准确叙述是( )。
A. 大于0的数 B. 非0的整数 C. 非0的数 D. 1
9. ( )为正确的字符常量。
A. 'M' B. "\\" C. "c" D. "\24m"
10. C语言基本数据类型包括( )。
A. 整型、实型、逻辑型 B. 整型、实型、字符串型
C. 整型、字符型、逻辑型 D. 整型、字符型、实型
11. 若已定义int x,y,z; char a,b,c; 拟从键盘输入一个值赋给变量y,则正确的函数调用是( )。
12. 下列输出语句的书写正确的是( )。
A. printf("This is C Program."); B. print("This is C Program.");
C. printer("This is C Program."); D. printf("This is C Program.")
13. C程序运行包括编辑、编译、连接、执行四个步骤,每个步骤执行后的文件分别是( ),后缀名是( ),( )是二进制文件,( )可以被计算机执行。
14. C语言有( )种注释符号。分别是( ),有什么区别?
15. 有表达式:a += a -= a * a,如果a的初始值为9,则表达式执行后a的值为( )。
16. C语言中运算对象必须是整型的运算符是( )。
17. 以下程序运行后的输出结果是( )。
int main( )
{
int a=0, b=1, c=2;
if(c = a) printf("%d\n", c);
else printf("%d\n", b);
return 0;
}
18. 以下程序运行后的输出结果是( )。
int main( )
{
int x, a=0, b=1;
x=a++ && b++ ; // x=a++ || b++ ; // x= ++ a && ++ b ; // x= ++ a || ++ b ;
printf("%d, %d\n", x, b);
return 0;
}
A. 0, 1 B. 1, 1 C. 0, 2 D. 1, 2
19. 以下程序运行后的输出结果是( )。
int main( )
{
int a=0, b=1, m;
m=a>b ? a:b;
printf(“%d\n”, m);
return 0;
}
A. 0 B. 1 C. 2 D. 编译有错
20. 如果有如下程序段,下面描述正确的是( )。
int i; while(i=0) i=i+1;
A. 循环执行一次 B. 循环是无限循环
C. 循环体语句一次也不执行 D. 循环体语句执行一次
21. 与while(x)等价的语句( )。
A. while(x==0) B. while(x==1)
C. while(x!=0) D. while(x!=1)
22. 下面有关for循环的正确描述是( )。
A. for循环只能用于循环次数已经确定的情况
B. for循环是先执行循环体语句,后判断表达式
C. 在for循环中,不能用break语句跳出循环体
D. for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
24. 下列数组定义方式不正确的语句是( )。
A. char x[5]; B. char y[]={'h','e','l','l','o'};
C. int x[6]={12,13,14,15}; D. int y[];
25. 若有以下的定义:int t[5][4];能正确引用t数组的表达式是( )。
A. t[2][4] B. t[5][0] C. t[0][0] D. t[0,0]
27. 若有以下定义:int a[5]={ 1, 2, 3, 4, 5 },表达式a[a[3]]的值是( )。
A. 5 B. 4 C. 3 D. 2
2. 有以下程序段,运行后的输出结果是 。
#include <stdio.h>
main( )
{
int a=9;
while(a>6)
{
if(a%2 ) { printf("%d,", a--); continue; } //break
a--;
}
}
3. 有以下程序段,运行后的输出结果是 。
main( )
{
int k=4, n=0;
do{
switch(k)
{
case 1: n+=1;
case 2: n+=2; break;
case 3: n+=3;
case 4: n+=4; break;
default: n+=5;
}
k--;
}while(k>0);
printf("%d", n);
}
5. 程序输出结果为: 。
main( )
{
int b [3][3]={0,1,2,0,1,}, i, t=1;
for(i=0;i<3;i++)
t+=b[i][i];
printf("%d",t);
}
二、判断题
1. 一个C语言源程序可以包含两个或者两个以上main()函数。
2. 编写C语言程序时,每行只能写一条语句。
3. 变量必须先定义后使用。
4. int a=0, b=1, c=2; 表达式a<=c<=b值为1。
5. 选择结构中条件控制语句必须为逻辑表达式或者关系表达式。
6. do---while循环语句的循环体至少执行一次,是当型循环。
7. continue语句只结束本次循环,而不是终止整个循环的执行。
break语句的作用是什么?与continue的区别是什么?
8. 有定义char str[3][4];该二维数组共有4行3列。
9. 声明一个长度为10的一维整型数组a时,可以用这样的语句:int n=10, a[n];。
10. C程序是由若干个函数组成的。
五、程序设计题
1. 通过键盘输入一个小写字符,将其转换为大写字母,并输出。
2. 使用while语句求201+202+203+……+300。
1. 有公式如图,输入一个x值,输出对应的y值。
2. 编写程序,从键盘获取两个小数x, y,
输出较大值/较小者/和/差/乘积
3. 输出100~200之间不能被3整除的数
4. 对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出,输出结果为:9,8,7,6,5,4,3,2,1,0。
5.将 数组a中下标值为偶数的元素从小到大排列,其它元素不变。
求斐波那契数列的前10项。
计算1/2 2/5 3/8 4/11 5/14 前10项分值的和。