C语言习题集习题一一.填空题1.C程序是由(函数)构成的,一个C程序中至少包含(main函数)。
因此,( 函数) 是C程序的基本单位。
2.C程序注释是由( /*) 和( */ ) 所界定的文字信息组成的。
3.函数体一般包括( 变量声明) 和( 语句) 。
二.判断题1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。
【错】2.main函数必须写在一个C程序的最前面。
【错】3.一个C程序可以包含若干的函数。
【对】4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。
但是可以增加程序的可读性。
【对】5.C程序的注释只能是一行。
【错】6.C程序的注释不能是中文文字信息。
【错】8.可以使用Visual C++ 6.来编译和连接一个C程序。
【对】9.可以使用Visual C++ 6.来运行一个C程序。
【对】10.可以使用Visual C++ 6.来实时调试(即动态调试)一个C程序。
【对】三.简答题1.写出一个C程序的基本结构。
2.简要叙述使用Visual C++ 6.0编译和运行一个程序的步骤。
四.编程题1.提高题:参照课本例1.1,试编写一个C程序,输出如下信息。
(提示:使用键盘上的一些符号)。
2.提高题:试编写一个C程序,输出如下信息。
************************* @ @ ****** @ *************************试试看,可以输出其他组合图案吗?习题二一.选择题1、合法的字符常量是(ACD)。
A)…\t‟B) “A” C)…a‟D)‟\x32‟2、合法的字符常量是( D) 。
A)…\084‟B) …\84‟ C)…ab‟D)‟\x43‟3、(B)是C语言提供的合法的数据类型关键字。
A)Float B)signed C)integer D)Char4、在以下各组标识符中,合法的标识符是((4))。
(1)A)B01 B)table_1 C)0_t D)k%(2)A)Fast_ B)void C)pbl D)<book>(3)A)xy_ B)longdouble C)*p D)CHAR( 4 ) A) sj B) Int C)_xy D)w_y235、属于合法的C语言长整型常量的是(BD)。
A)5876273 B)0L C)2E10 D)(long)58762736、下面选项中,不是合法整型常量的是(B )。
A)160 B)-0xcdg C)-01 D)-0x48a7、判断int x = 0xaffbc;x的结果是(D)。
A)赋值非法B)溢出C)为affb D)为affbc8、下面选项中,均是合法浮点数的是(B)。
A)+1e+1 B)-.60 C)123e D)-e3A)5e-9.4 B)12e-4 C)1.2e-.4 D).8e-4A)03e2 B)-8e5 C)+2e-1 D)5.e-09、在C语言中,要求参加运算的数必须时整数的运算符是(C)。
A)/ B)* C)% D) =10、在C语言中,字符型数据在内存中以(D)形式存放。
A)原码B)BCD码C)反码D)ASCII码11、下列语句中,符合语法的赋值语句是(C)。
A)a=7+b+c=a+7;B)a=7+b++=a+7;C)a=(7+b,b++,a+7);D)a=7+b,c=a+7;12、是非法的C语言转义字符(B )。
A)…\b‟B)…\0xf‟ C)…\037‟ D)… \‟‟13、对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中,( B )是正确的。
A)语法错误B)f为5.0 C)f为0.0 D)f为2.014、与代数式(x*y)/(u*v) 不等价的C语言表达式是(A )。
A)x*y/u*v B)x*y/u/v C)x*y/(u*v) D)x/(u*v)*y15、在C语言中,数字029是一个(D)。
A)八进制数B)十六进制数C)十进制数D)非法数16、C语言中整数-8在内存中的存储形式为(A)。
A)1111111111111000 B)100000000001000C)000000000001000 D)111111111111011117、对于char cx=‟ \039‟;语句,正确的是(A )。
注:在VC++环境是正确的。
这里强调的是ANSI C。
A)不合法B)cx的ASCII值是33C)cx的值为四个字符D)cx的值为三个字符18、若int k=7,x=12;则能使值为3的表达式是(D)。
A)x%=(k%=5) B)x%=(k-k%5)C)x%=k-k%5 D)(x%=k)-(k%=5)19、为了计算s=10!(即10的阶乘),则s变量应定义为(C)。
A)int B)unsigned C)long D)以上三种类型均可20、以下所列的C语言常量中,错误的是(B)。
A)0xFF B)1.2e0.5 C)2L D)‟\72‟21、假定x和y为double型,则表达式x=2,y=x+3/2的值是(D)。
A)3.500000 B)3 C)2.000000 D)3.00000022、设变量n为float型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是(D)。
A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0C)n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.023、以下合法的赋值语句是(A)。
A)x=y=100;B)d―― ;C)x+y ;D)c=int(a+b);24、下选项中不属于C语言的类型是(D)。
A)signed short int B)unsigned long intB)unsigned int D)long short25、设以下变量均为int类型,则值不等于7的表达式是(C)。
A)(x=y=6,x+y,x+1) B)(x=y=6,x+y,y+1)C)(x=6,x+1,y=6,x+y) D)(y=6,y+1,x=y,x+1)26、在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是(D )。
A)a=20000+20000;B)a=4000*10;C)30000+10000;D)a=4000L*10L;二.填空题1.在C语言中(以16位PC机为例),一个char数据在内存中所占字节数为1,其数值范围为-128~127 ;一个int数据在内存中所占字节数为2,其数值范围为-32768~32767 ;一个long数据在内存中所占字节数为4,其数值范围为-2147483648~2147483647;一个float数据在内存中所占字节数为 4 ,其数值范围为 1038 。
2.C 语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为 字母 。
3.字符常量使用一对 单引号 界定单个字符,而字符串常量使用一对 双引号 来界定若干个字符的序列。
4.在C 语言中,不同运算符之间运算次序存在 优先级 的区别,同一运算符之间运算次序存在 结合性 的规则。
5.设x,i,j,k 都是int 型变量,表达式x=(i=4,j=16,k=32)计算后,x 的值为 32 。
6.设x=2.5,a=7,y=4.7, 则x+a%3*(int)(x+y)%2/4为 2 。
7.设a=2,b=3,x=3.5,y=2.5,则(float)(a+b)/2+(int)x%(int)y 为 3.5 。
8.数学式子 的C 语言表达式为 (a*a+b) /(a+5*b) 。
9.已知:char a=‟a‟,b=‟b‟,c=‟c‟,i;则表达式i=a+b+c 的值为 38 。
10.已知int a=12,n=5;则:表达式运算后a 的值各为 。
a+=a 24a-=2 10a*=2+3 60a/=a+a 0n%=(n%=2) 0a+=a-=a*=a 012.设int a; float f; double i ;则表达式10+‟a‟+i*f 值的数据类型是 double 。
13.若a 为int 型变量,则表达式 (a=4*5,a*2) , a+6的值为 26 。
14.假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为 10 。
15.已知a,b,c 是一个十进制数的百位,十位,个位,则该数的表达式是 100*a+10*b+c 。
16.定义:double x=3.5,y=3.2;则表达式(int)x*0.5的值是 1.500000 ,表达式y+=x++的值是 6.700000 。
17.定义:int m=5, n=3;则表达式m/=n+4的值是 5 ,表达式m=(m=1,n=2,n-m)的值是 1 ,表达式m+=m-=(m=1)*(n=2)的值是 -2 。
18.表达式5%(-3)的值是 2 ,表达式-5%(-3)的值是 -2 。
19.若a 是int 变量,则执行表达式a=25/3%3后,a 的值是 1 。
20.数学式子的C 语言表达式为: 3*a*b/(a+b*b) 。
三.判断题1.在C 程序中对用到的所有数据都必须指定其数据类型。
【 对 】 a 2+b a+5b 3ab a+b 22.一个变量在内存中占据一定的存储单元。
【对】3.一个实型变量的值肯定是精确的。
【错】4.对几个变量在定义时赋初值可以写成:int a=b=c=3;【错】5.自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或表达式。
【对】6.在C程序的表达式中,为了明确表达式的运算次序,常使用括号“()”。
【对】7.%运算符要求运算数必须是整数。
【对】8.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数。
【错】9.在C程序中,逗号运算符的优先级最低。
【错】10.C语言不允许混合类型数据间进行运算。
【错】四.简答题1.为什么C语言的字符型可以进行数值运算?2.简述…a‟和“a”的区别。
.程序:int m=12; m=15;为什么整型变量m的值在运算后不是当初的12,而是15?4.将下面各数用八进制和十六进制数表示:十进制32 -1 -32768 2002 -128 0八进制十六进制6.华氏温度F与摄氏温度c的转换公式为:c=(F-32)*5/9 ,则float c, F; c=5/9*(F-32)是其对应的C语言表达式吗?如果不是,为什么?五.程序阅读题1.写出以下程序运行的结果。
main ( ){char c1=‟a‟,c2=‟b‟,c3=‟c‟,c4=‟\101‟,c5=‟116‟;printf(“a%c b%c\tc%c\tabc\n”,c1,c2,c3);printf(“\t\b%c %c”,c4,c5);}运行结果:aa bb cc abcA 62.写出以下程序运行的结果。