1、C语言基础练习题1.1.2.3.4.5.6.7.8.9.10.11.盛年不重来,一日难再晨。及时宜自勉,岁月不待人。C语言程序设计习题篇第一章c语言基础知识1选择题以下不是c语言的特点的是()。A、 语言简洁紧凑B、 能够编制出功能复杂的程序C、 C语言可以直接对硬件操作D、 C语言移植性好下列字符序列中,不可用作 C语言标识符的是()。A. abc123B. no.1C. _123_D. _ok正确的C语言标识符是 ()。A. _buy_2B. 2_buyC. ?_buyD. buy?请选出可用作C语言用户标识符的一组标识符( )。A . voidB. a3_b3C . ForD . 2ad
2、efi ne_123-abcDOWORDIFCasesizeof下列符号中,不属于转义字符的是()。A . B . 0xAAC. tD . 0不属于C语言关键字的是()。A . intB . breakC . whileD . character是C语言提供的合法关键字的是()。A . FloatB . sig nedC . in tegerD . Char以下不能定义为用户标示符的是( )。A. scanf B.Void C .3comD . i nt一个C程序是由()。A .一个主程序和若干子程序组成B . 一个或多个函数组成C.若干过程组成D .右十子程序组成C语言程序的基本单位是()。
3、A .程序行 B .语句 C .函数D.字符卜列说法中,错误的是()。A 每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号 B 每个函数都有一个函数头和一个函数体,主函数也不例外C 主函数只能调用用户函数或系统函数,用户函数可以相互调用D 程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 以下说法中正确的是()。A . C语言程序总是从第一个定义的函数开始执行B 在C语言程序中,要调用的函数必须在 main()函数中定义C. C语言程序总是从 main()函数开始执行D . C语言程序中的 main()函数必须放在程序的开始部分C编译程序是()。A . C程序
4、的机器语言版本B .一组机器语言指令C .将C源程序编译成目标程序以下选项中,合法的用户标识符是( )。A . longB. _2abcC . 3dmaxD . A.dat以下选项中,合法的实型常数是()。A . 5E2.0B . E-3C . 2E0D . 1.3ED .由制造厂家提供的一套应用软件已知大写字母 A的ASCII码值是65, 字符常量101 是()。小写字母a的ASCII码是97,则用八进制表示的A .字符A B .字符a C.字符c以下选项中, 合法转义字符的选项是( )。A . B . 018 C. xab以下选项中,正确的字符常量是( )。A . ”F” B. C. W以
5、下选项中可作为 C语言合法整数的是A. 10110B B. 0386 C. OXffa下列变量定义中合法的是D .非法的常量D. abcD. x2a212.13.14.15.16.17.18.19.20.21 .22.23.24.A . short _a=1-.le-1;B . double b=1+5e2.5;C . lo ng do=0xfdaL;D . float 2_and=1-e-3;与数学式子n9x2x 1对应的C语言表达式是)。A . 9*xAn/(2*x-1) B . 9*x*n/(2*x-1)C . 9*pow(x, n)*(1/(2*x-1) D . 9*pow( n,x)
6、/(2*x-1)3ab若有代数式 ,则不正确的C语言表达式是()。cdA . a/c/d*b*3B . 3*a*b/c/dC . 3*a*b/c*d已知各变量的类型说明如下:int m=8,n, a, b;un sig ned long w=10;double x=3.14, y=0.12;则以下符合C语言语法的表达式是()。A . a+=a-=(b=2)*(a=8)C . x%3以下符合C语言语法的赋值表达式是( )。D . a*b/d/c*3B . n=n*3=18D. y=float (m)A. a=9+b+c=d+9B . a=(9+b, c=d+9)25.26.27.28.29.30
7、.31 .32.33.34.35.36.37.38.C. a=9+b, b+,c+9 D. a=9+b+=c+9已知字母A的ASCII码为十进制数65,且S为字符型,则执行语句 S= A + 6 - 3;后,S中的值为()。A . D B . 68 C.不确定的值 D . C在C语言中,要求运算数必须是整型的运算符是( )。A . / B. + C. *= D. %若有说明语句:char s=72;则变量s ()。A .包含一个字符B .包含两个字符C.包含三个字符D .说明不合法,s的值不确定若有定义:int m=7; float x=2.5, y=4.7; 则表达式 x+m%3*(int)
8、(x+y)%2/4 的值是()。A . 2.500000 B. 2.750000 C. 3.500000 D. 0.000000在C语言中,char型数据在内存中的存储形式是( )。A .补码 B .反码 C.原码 D. ASCII码设变量x为float类型,m为int类型,则以下能实现将 x中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( )。A . x=(x*100+0.5)/100.0B . m=x*100+0.5, x=m/100.0C. x=x*100+0.5/100.0D . x=(x/100+0.5)*100.0表达式13/3*sqrt(16.0)/8的数据类型是()
9、。A .int B. float C. double D .不确定设以下变量均为int类型,则值不等于 7的表达式是()。A . (m=n=6, m+n, m+1)B.(m=n=6, m+n, n+1)C.(m=6, m+1, n=6, m+n)D.(m=6, m+1, n=m, n+1)假设所有变量均为整型,则表达式 (x=2, y=5, y+, x+y)的值是(A . 7 B . 8 C . 6D . 2已知s是字符型变量,下面不正确的赋值语句是()。A . s=012B.s= u+v;C . s= 1+ 2;D .s=1+2;已知s是字符型变量,下面正确的赋值语句是()。A . s= a
10、bc;B.s=08;C . s= xde;D.s= ;若有以下定义,则正确的赋值语句是( )。int x,y;float z;A . x=1,y=2,B .x=y=100C. x+;D.x=int (z);设x、y均为float型变量,则不正确的赋值语句是()。A . +x ;B.x*=y-2;C . y=(x%3)/10;D.x=y=0;下列语句中符合 C语言的赋值语句是()。A.B. a=7+b+=a+7;D. a=7+b,c=a+7;B .字符串D .字符或字符型变量值。D .提示出错、无结果a=7+b+c=a+7;C. a=7+b,b+,a+739.putchar函数可以向终端输出一个
11、( )。A .整型变量表达式值。C .实型变量值。40. 以下程序段的输出结果是 ()。int a=12345; printf( ” %2dn ”, a);A . 12 B. 34 C. 12345 41 .若x和y均定义为int型,z定义为double型,以下不合法的 scanf ()函数调用语句为()。A.scanf(%d%lx , %le”,&x,&y,&z );B.scanf (” 2d*%d%lf ”,&x, &y, &z);C.scanf( %x%*d%o ”, &x,&y);D.scanf( %x%o%6.2f ” , &x,&y,&z);42.有如下程序段:int x1, x2
12、 ;char y1, y2;scanf (” d%c%d%c ”,&x1,&y1,&x2,&y2 );若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是()。(注:- 代表空格)B. 10 LJA20BD . 10A20BA. 10A LJ20BC. 10LJ20LJ B43 .若变量已正确说明为 float类型,要通过语句scanf( %f %f%f ”,&a, &b, &c);给a赋予10.0, b赋予22.0, c赋予33.0,不正确的输入形式为( )。A . 10 B. 10.0,22.0,33.02233C. 10.0 D . 10 2222.0 33.0 3
13、344.有如下程序,若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是 ()。 (注:代表空格)int x1 , x2 ;char y1, y2;B . 1020ABCscanf(%d%d”,&x1,&x2 ) scanf (” %c%c”, &y1,&y2 ) A . 1020ABC. 1020D . 1020ABAB45 .已有定义int a=-2 ;和输出语句:printf ( %8lx ”,a);以下正确的叙述是( )。A .整型变量的输出格式符只有 %d 一种B.%x是格式符的一种,它可以适用于任何一种类型的数据C.%x是格式符D . %8lx不是错误的格式符
14、,其中数字 8规定了输出字段的宽度46.有如下程序段,对应正确的数据输入是( )。float x,y;scanf(”f%f ” &x,&y);printf(” a=%f,b=%f ”, x,y);A . 2.04 B . 2.04,5.675.67C . A=2.04,B=5.67 D . 2.055.6747.有如下程序段,从键盘输入数据的正确形式应是( )。(注:代表空格)float x,y,z;scanf( “ x=%d,y=%d,z=%d ” ,&a,&y,&z);A . 123 B. x=1,y=2,z=3C. 1,2,3 D. x=1 LJy=2 LJ z=348.以下说法正确的是
15、()。A .输入项可以为一个实型常量,如 scanf(” f” ,3.5);B .只有格式控制,没有输入项,也能进行正确输入,如 scanf( a=%d,b=5d”);C.当输入一个实型数据时, 格式控制部分应规定小数点后的位数, 如scanf(”4.2f”,&f);D .当输入数据时,必须指明变量的地址,如 scanf(%f”,&f);49. 根据定义和数据的输入方式,输入语句的正确形式为: ()。(注:代表空格)已有定义:float x,y;数据的输入方式:1.234.5A . scan(” f,%f ”,&x,&y); B. scanf(” f%f ”,&x,&y);C. scanf(”
16、3.2f2.1f ”,&x,&y); D . scanf(”3.2f%2.1f ”,&x,&y);50 .根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为( )。#include ” stdio.h”main ()char s1,s2,s3;输入语句;printf(” %c%c%c”,s1,s2,s3);(注:-代表空格)B. x=%d,y=%dD. x=%d,y=%d输入形式:AC 输出形式:AA . scanf( %c%c%c ”,&s1,&s2,&s3);B . scanf(” %c LJ% LJc%c”,&s1, &s2,&s3); C . scanf( %c,%c
17、,%c ”,&s1,&s2,&s3);D . scanf(%c%c”, &s1, &s2,&s3);51.以下程序的执行结果是: ()。#include ” stdio.h”main () int x=2,y=3;printf( x=%d,y=%dn ” ,x,y);A. x=%2,y=%3C. x=2,y=352.以下程序的输出结果是( )o (注:代表空格)#include ” stdio.h”main () printf( nstring1=%15s* ”, ” programming ”);printf(” nstring2=%- 5s* ”,” boy”); prin tf(” st
18、ri ng3=%2s* ” girl”);A . string仁programming LJLJLJ *- stri ng2=boy* stri ng3=gi*C. string仁programming*jstri ng2= LJLJoy*stri ng3=girl*B . string仁pjogramming*stri ng2=boy stri ng3=gi*D . string仁pjogramming* stri ng2=boy stri ng3=girl*53.根据题目中已给出的数据的输入和输出形式,程序中输入输出语句的正确内容是( #inelude ” stdio.h”main ()
19、int a; float b;输入语句 输出语句(注:-代表空格)B. scanf(” %d%3.1f ”,&a,&b);printf( na+b=%f ” ,a+b);D . scanf(%d%f”,&a,&b); printf( na+b=%f ” ,a+b);12,34,正确的输出结果为( ) 输入形式:12.3回车 输出形式:a+b=3.300 A . scanf(%d%f ”,&a,&b);printf( na+b=%5.3f ” ,a+b);C. scanf(%d,%f”,&a,&b);prinntf(” na+b=%5.3f ” ,a+b)54.阅读以下程序,当输入数据的形式为:
20、#include ” stdio.h”main () int a,b;scanf(” %d%d ”,&a,&b);printf( a+b=%dn ,a+b);B .有语法错误D .不确定值并有以下输出数据:(注:代表空格)A.a+b=46C. a+b=1255.若有定义:int x,y; char s1,s2,s3;1 LJ2回车 UW回车则能给x赋给整数1,给y赋给整数2,给si赋给字符U,给s2赋给字符V,给s3赋给 字符W的正确程序段是()A . scanf(x=%dy=%d ”,&x,&y); s仁getchar();s2=getchar();s3=getchar();B . scan
21、f(%d%d ”,&x,&y); s1=getchar();s2=getchar();s3=getchar();C. scanf(” %d%d%c%c%c ”,&x,&y,&s1,&s2,&s3);D . scanf(” %d%d%c%c%c%c%c%c ”,&x,&y,&s1,&s1,&s2,&s2,&s3,&s3);1.2填空题1. c语言的符号集包括 、 、2.结构化设计中的三种基本结构是 3.C语言源程序文件的后缀是 ,经过编译后生成文件的后缀是 ,经过链接后生成文件的后缀是 。4.C语言的关键字都用 大写或小写。5.一个函数由两部分组成,它们是 、 。6.函数体一般包括 、 。7.C
22、语言是通过 来进行输入和输出的。& 以下程序的执行结果 。#include ” stdio.h”main () short i=-1,j=1;printf( dec:%d,oct:%o,hex:%x,unsigned:%un ”,i,i,i,i);printf( dec:%d,oct:%o,hex:%x,unsigned:%un ,j,j,j,j);9.以下程序的执行结果是 。#include ” stdio.h”main () char s= b;printf(” dec:%d,oct:%o,hex:%x,ASCII:%cn ”, s,s,s,s);10以下程序的执行结果是 。(注:代表空格
23、)#include ” stdio.h”main () float pi=3.1415927;printf(” %f,%.4f,%4.3f,%10.3f ” ,pi,pi,pi,pi);printf(” n%e,%.4e,%4.3e,%10.3e” ,pi,pi,pi,pi);11以下程序的执行结果是: 。#include ” stdio.h”main () char c= c +5;printf(” c=%cn ” ,c);12以下程序输入123后的执行结果是 。(注:代表空格)#include ” stdio.h”main () int i,j;char k;scanf(” %d%c%d
24、”,&i,&k,&j);printf( i=%d,k=%c,j=%dn ” ,i,k,j);13.有以下程序,若输入 9876543210后的执行结果是 ;若输入为:9876543210后的执行结果是 ;若输入为:987654 -3210后的执行结果为: 。(注:代表空格)#include ” stdio.h”main () int x1,x2;char y1,y2;scanf(” %2d%3d%3c%c ”,&x1,&x2,&y1,&y2);printf( x1=%d,x2=%d,y仁c,y2=%cn ”,x,y);14若x和y均为int型变量,则以下语句的功能是 。x+=y; y=x-y;
25、 x-=y;15.有一输入函数scanf(%d”k);则不能使float类型变量k得到正确数值的原因是: 16 .有如下程序段,输入数据: 12345ffl678 后,u的值是 【1】,v的值是 【2】。int u;float v;scanf( “3d%”,&u,&v);1.3答案及部分解析.选择题答案1. B2. B3. A4.B5. B6. D7. B8. D9. B10.C11. A12. C13. C14. B15. C16.A17. A18. C19. C20. A21. C22.C23. A24. B25. A26. D27. A28.A29. D30. B31 . C32. C3
26、3. B34.B35. C36. C37. C38. D39. D40.C41. D42. A43. B44. D45. D46.A47. B48. D49. B50. A51. D52.D53. A54. D55. D14.解析:C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须 为字母或下划线。而且不能与C语言规定的关键字同名。 关键字如:auto, break, case,char, con st, con ti nue, default, do, double, else, en try, exter n, for, float, goto, if, i nt, i
27、 nt, long, register, return, short, signed, sizeof, static, struct, unsigned, while, switch, typedef, void, volatile, unior。这些关键字先不必硬背下来,随着后续的学习,你将 发现它们都是一些数据的类型、语句等,自然会随着学习的深入,而记下来。15.解析:用指数形式表示一个实型常数时, E或e之前必须有数字,且 E后面指数必须为整数。16. 解析:101为转义字符,相对应一个 ASCII码字符。(101) 8= ( 65) 10=A.17. 解析:转义字符的特征是以“ ”开头
28、,其后跟一些字符,如 ” b, f等代表一些特殊的含义,而 后如跟数字,可以为八进制或者十六进制,将其转换为对应的ASCII码值,就可以得出对应的字符。“后跟八进制的写法:0nn,或者nn,表 示“0”或者“”后只能跟1或3位07之间的数字;“ ”后跟十六进制的写 法:xnn ,或者nn,表示“ x或者后只能跟1或2位0 9及a f(A F)之间的字符。选项B的错误在于8不是八进制;而选项C的错误在于没有“”; 选项D的错误在于超长(多了一位)。21.解析:B的错误在于赋值语句的左侧只能为一个简单变量,如: n=3*(n=18); C的错误在于运算符只能适用于整型数据, D的错误在于作类型转换时,应将类型加上括号,即为:y=(float) m31.解析:逗号表达式的最终结果为最右端的表达式(即 x+y )的值,其运算顺序是从左自AAAAAAAA右的。第三个表达式 y+,其隐含有
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1