C语言补充练习题_第1页
C语言补充练习题_第2页
C语言补充练习题_第3页
C语言补充练习题_第4页
C语言补充练习题_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一、二章 C语言概述及数据和运算一、 单项选择题1以下关于C语言的特点,正确的是 。A 表达能力强且灵活; B 可移植性好;C. 提供了丰富的数据类型,允许程序员定义各种类型的变量指针和函数指针;D. 以上答案都对。2”a”在内存中占 字节。 A. 1个 B. 2个 C. 3个 D. 4个3A+10的结果是 。A.K B.”K” C.J D.”J” 4. a=b+=c+5,若b=1,c=2,则a的值是 。 A1 B.7 C.8 D.出错5下列合法的变量名是 。 A123 B.next C.int D.*x6C源程序的基本单位是: A程序行 B.语句 C.函数 D.字符7字符型数据在微机内存中

2、的存储形式是: A反码 B.补码 C.EBCDIC码 D.ASCII码8. 用C语言编制的源程序要变为目标程序,必须经过: A. 汇编 B.解释 C. 编辑 D.编译9. 请选出可作为C语言用户标识符的一组标识符: A.void B.a3_b3 C.For D.Za define _123 _abc DO WORD IF case sizeof10设有语句char a=73;则变量a: A.包含1个字符 B.包含2个字符 C.包含3个字符 D.说明不合法11以下选项中正确的整型常量是: A.12. B.-20 C.1,000 D.4 5 6 12若变量已正确定义并赋值,不符合C语言语法的表达式

3、是: A. a=a+7 B.a=7+b+c,a+ C.(int)(12.3)%4 D.a=a+7=c+b13.以下选项中不合法的用户标识符是 A.abc.c B.file C.Main D.PRINTF 14.以下选项中正确的实型常量是 A. 0 B. 3.1415 C.0.329´102 D. .87115TURBO C中int类型变量所占字节数是: A.1 B.2 C.3 D.4 16下列说法不正确的是_ AC程序由若干个源文件组成,一个源文件由若干个函数组成。B#include和#define不是C语句。CAPH和aph是两个不同的变量。 D当输入数据时,对于整型变量只能输入整

4、型值;对于实型变量只能输入实型值。 17scanf ( )函数的地址表列是用 符号加上变量名表示变量的地址。 A% B& C# D! 18指出下面不正确的赋值语句是 A. a+; B. a= =b; C. a+=b; D. a=1,b=1; 19指出下面正确的输入语句是 . A. scanf (“a=b=%d”,&a,&b); B. scanf (“a=%d,b=%f”,&m,&f ); C. scanf (“%3c”,c); D. scanf (“%5.2f”, &f); 20执行scanf (“%d%c%f”,&a,&b,&a

5、mp;c) 语句,若输入1234a12f56 则变量a,b,c的值为 . A. a=1234 b=a c=12.56 B. a=1 b=2 c=341256 C. a=1234 b=a c=12.0 D. a=1234 b=a12 c=56.0 21执行scanf (“a=%d,b=%d”,&a,&b) 语句, 若要使变量a和b的值分别为3和4, 则正确的输入方法为 . A. 3 ,4 B. a:3 b: 4 C. a=3,b=4 D. 3 4 22设b=1234 , 执行printf(“%d%d”,b) 语句,输出结果为: . A. 1234 B. %1234 C. %d12

6、34 D. %d 1234 23下列程序的执行结果是 . main( ) char ch=a; printf(“%cn”,ch); printf(“%2cn”,ch); printf(“%3cn”,ch); 供选择的答案是: A. a B. ca C. a D. a a 2ca a aa a 3ca a aaa 24下列程序的执行结果是 . # include <stdio.h> main( ) int a=5; float x=3.14; a*=x*(E-A); printf (“%fn”,(float)a); 供选择的答案是: A. 62.800000 B. 62 C. 62.

7、000000 D. 63.000000 25若输入2.50 ,下列程序的执行结果是_ main( ) float r , area ; scanf (“ %5.2f ” , & r ) ; printf (“ area=%f n” , area=1/2*r*r ) ; A. 0 B. 3.125 C. 3.13 D. 程序有错26 下列程序的执行结果是_ main( ) int a=b=c=0 ; c= (a- = a-5 ), ( a = b,b+5); printf(“%d,%d,%dn”,a,b,c); A 5,0,-10 B. 0,0,5 C. 10,5,-10 D . 5,0

8、,527若x是int型变量,y是float型变量,所用scanf语句为 scanf(“x=%d,y=%f”,&x,&y);正确的输入操作是 。 A. x=10,y=66.6<回车> B. 10 66.6<回车> C. 10<回车>66.6<回车> D. x=10<回车>y=66.6<回车> 28设a,b均是int型变量,则以下不正确的函数调用为 。 A. getchar() B. putchar(108); C. scanf(“%d,%2d”,&a,&b); D. putchar(); 二、

9、填空题1一个C源程序是由若干个函数构成,其中必须有一个是 函数。2286用C语言八进制表示是 。321300用C语言十六进制表示是 。4若x=2.5,a=7,y=4.7,则x+a%3*(int)(x+y)%2/4的值是 。5C语言规定对所用到的变量要 。6函数体由 开始,由符号 结束。函数体的前面是 部分,其后是 部分。7在C语言中整数可用 进制数、 进制数和 进制数三种数制表示。8将c中的小写字母转换成大写字母的表达式是 。9将c中的数字字符码转换成对应的数字,可采用的方法是c= 。10若a=3,b=3,x=35,y=25,则(float)(a+b)/2+(int)x%(int)y的值是 。

10、11表达式3.5+1/2的计算结果是: 。12若k为int整型变量且赋值11。请写出运算k+后表达式得值a) 和变量的值b) 13若x为double型变量,请写出运算x=3.2,+x后表达式的值a) 和变量的值b) 14在C语言程序中,用关键字 定义基本整型变量,用关键字 定义单精度实型变量,用关键字 定义双精度实型变量。15C程序中定义的一个变量,代表内存中的一个 。 16C语言的语句分为 语句和 语句两大类。 17下列语句被执行后的执行结果是 。 int a=1; printf (“%d%s%s”,a,”abc”,”def”); 18 getchar( ) 函数的作用是 。 19执行下列语

11、句后,用户输入123456abc,则a的值为 ,b的值为 ,c的值为 。 main() int a,b; char c; scanf (“%3d%2d%3c”,&a,&b,&c) 20下面程序的输出结果是 。# include <stdio.h> main( ) int i=10; /* int i=20; */ i+; printf (“%d”,i +); printf (“%dn”,i ); 21 程序的三种基本结构是 、 、 。 22下面程序运行后,从键盘输入30,则程序的输出结果是 。 main ( ) int a ; scanf(”%d”, &am

12、p;a ); a+; printf (“a=%d,Ha=%x,Oa=%o”,a,a,a); 23执行( a=3.0+5,a*4 ), a+=-6; 变量a 及表达式的值分别为 _ 24数学表达式 的C语言表达式为_ 25若变量已经定义,要将a与b中的数进行交换,正确的语句组是_ 三、判断题:1C源程序是由多个函数组成的,程序的执行是按书写顺序进行的。( )2一个C程序可以由一个文件组成,也可由若干文件组成。 ( )3C语言中,非0值作为true,0作为false;若表达式取得true值时,结果为1, 取得false值时,为0。 ( )4为了确保表达式n/2的值为float型,可写成float(

13、n/2)。 ( )5若有(float)x,则x变成float型变量。 ( )6若a=3,b=4,c=5,则d=!(a%b)的值是0。 ( )7变量xx和XX是一样的。 ( )8C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示。( ) 9a是实型变量,进行赋值a=10,因此实型变量中允许存放整型值 ( ) 10在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式( ) 11执行表达式a=b后,在内存中a和b存储单元中的原值都将被改变,a的值已由原来的改变为b的值,b的值由原来改变为0 ( ) 12C程序由函数组成 ( ) 13有a=3,b=5。执行a=b,b=a后,已使a的值

14、为5,b的值为3。( ) 14getchar( )和scanf()均为输入函数,它们之间可通用,没有任何区别。( ) 15执行语句scanf(”%6.3f “ ,&a)后,输入123456可使a的值为123.456 。( ) 16putchar()函数的作用是输出一串字符 。( ) 17使用scanf()函数,在输入数据时,若遇非法输入则认为该数据输入结束。( ) 18在C中所用的变量必须先说明后使用 ( ) 19在 C 程序中,运算符%仅能用于整型数的运算 ( ) 20# include和 # define不是C 语句 ( ) 21C 程序的每一行结束都有一个” ; ” ( ) 22

15、APH与aph 分别表示不同的变量 ( )四、程序阅读题:1程序:main ( ) int a,b=68; a=-3;printf(“ta=%dntb=%cn”end”n”,a,b); 该程序的运行结果是: 2程序:main() int i,j; float a,b; char c; long m,n;i=5;j=-3;a=25.5;b=3.0;m=a/b; n=m+i/j;printf(“%dn”,n);该程序运行的结果是: 3.程序: # include <stdio.h> # include <math.h> main() int a=1,b=4,c=2; flo

16、at x=10.5,y=4.0,z; z=(a+b)/c+sqrt(double)y)*1.2/c+x; printf(“%fn”,z); 该程序运行的结果是: 4.程序 #include <stdio.h> main() int x; x=-3+4*5-6; printf(“%d,t”,x); x=3+4%5-6; printf(“%d,t”,x); x=(7+6)%5%2; printf(“%d,n”,x); 该程序运行的结果是: 5 下面程序运行后,若输入a=2,b=3结果是 main( ) float a ,b ,x1, x2 ; scanf (“a=%f,b=%f “ ,

17、&a ,&b ) ; x1=a*b ; x2=a/b ; printf (“x1=%5.2f nx2=%5.2f n” ,x1,x2 ); 6 下面程序运行结果是 (已知A的ASCII码为65) # include <stdio.h> main( ) char d=C; int c=68; putchar(d); putchar(c); 7下面程序运行结果是 main ( ) printf (“ tan”); printf (“ tb bn”); printf (“ tbcn”); 8 下面程序运行结果是 # include “stdio.h” main() int

18、 m=7, n=4 ; float a=38.4, b=6.4, x ; x=m/2+n*a/b+1/2 ; printf(“%fn”,x) ; 五、程序填空题1 以下程序的功能是根据所输入半径值求圆面积,并输出面积值,请将程序补上必要的语句:#define _ main( ) float r ,s ; printf (“enter a number _r :”); ; ; ; 2若输入10,20,30则程序的执行结果是 20,30,10 请填充程序。 # include “stdio.h” main( ) int a, b, c ; _;_;_; a=b ; b=c ; _;printf (

19、 “%d,%d,%d” ,a, b, c );3以下程序不借助任何变量进行a与b的交换# include “stdio.h”main( ) int a , b ;printf( “Ïnput a and b”) ; scanf (“%d,%d”,_) ;a+=_; b=_ ; a-=_;printf(“%d,%dn”,a,b); 第三章 流程控制 一、 单项选择题:1. 两次运行下面的程序,如果从键盘上分别输入6和4,输出的结果是 。main() int x;scanf(“%d”,&x);if(x+>5)printf(“%d”,x);elseprinf(“%dn”,x-

20、); 2. 设a为整型变量,不能正确表达数学关系: 10<a<15的C语言表达式是 。A. 10<a<15 B. a=11|a=12|a=13|a=14C. a>10&&a<15 D. !(a<=10)&&!(a>=15)3. 在以下一组运算符中,优先级最高的是 。 A. <= B. = C. % D. && 4. 设a,b,c都是int型变量,且a=3,b=4,c=5,则下面表达式中,值为0的表达式是 。 A. a&&bB. a<=b C. c|+c&&

21、b-cD. !(a<b)&&!c|1) 5在C语言的if语句中,用作判断的表达式为 。 A. 关系表达式 B. 逻辑表达式 C. 算术表达式 D. 任意表达式 6在以下运算符中,优先级最高的运算符是 。 A. = B. C. != D. 7假设所有变量均为整型,表达式(a=2,b=5,ab? a+:b+,a+b)的值是: 。 A. 7 B. 8 C. 9 D. 2 8在C语言中,能代表逻辑值"真"的是 。 A. true B. 大于0的数 C. 非0整数 D. 非0的数 9在以下运算符中,优先级最高的运算符是 。 A. ! B. = C. + D. |

22、 10逻辑运算符两侧运算对象的数据类型 。 A. 只能是0或1 B. 只能是0或非0正数 C. 只能是整型或字符型数据 D. 可以是任何类型的数据 11 当执行以下程序段时,供选择的答案是_。 x=-1; do x=x*x; while(!x);A. 循环体将执行一次 B. 循环体将执行两次C. 循环体将执行无限次 D. 系统提示有语法错误12 执行语句: for(i=1;i+<4;);后,变量i的值,供选择的答案是_。A. 3 B. 4 C. 5 D. 不定 13. 以下for循环是: for(x=0,y=0;(y!=123)&&(x<4);x+);. 无限循环

23、B. 循环次数不变 C. 执行4次 D. 执行3次14若i,j已定义为int类型,则以下程序段中 for(i=5;i;i-) for(j=0;j<4;j+) 内循环体的总的执行次数,供选择的答案是_。A. 20 B. 24 C. 25 D. 30 15执行下列程序段后,变量i的正确结果, 供选择的答案是_。int i=10,j=0;do switch(i) case 9 : i+; case 10 : i+; case 11 : i+; defaut : i+; while (j);A. 10 B. 11 C. 12 D. 1316若a,b均为int型变量,且a=100,则关于循环语句

24、for(b=100;a!=b;+a,b+) printf(“-“); 的正确说法, 供选择的答案是_。A. 循环体只执行一次, B. 是死循环, C. 循环体一次也不执行, D. 输出-. 17以下不正确的描述, 供选择的答案是_。A. 用while和do-while循环时,循环变量初绐化的操作应在循环语句之前完成;B. while循环是先判断表达式,后执行循环语句;C. do-while和for循环均是先执行循环体语句,后判断表达式;D. for,while和do-while循环中的循环体均可以由空语句构成. 18. C语言中while和do-while循环的主要区别是 Ado-while的

25、循环体至少无条件循环一次. Bwhile的循环控制条件比do-while严格. Cdo-while允许从外部转到循环体内. Ddo-while的循环体不能是复合语句. 19在下列选项中,没有构成死循环的程序段,供选择的答案是_。 A. int i=100; B. for ( ; ; ); while (1) i=i%100+1; if(i>100) break; C. int k=1000; D. int s=36; do +k; while (k>=10000); while (s); -s; 20以下程序的输出结果是: 。 #include “stdio.h” main() i

26、nt i; for ( i=1;i<=5;i+) if (i%2) printf(“*”); else continue; printf(“#”); printf(“$n”); A.*#*#*#$ B.#*#*#*$ C.*#*#$ D.#*#*$21. 以下程序执行 次 #include “stdio.h” #define N 2 #define M N+1 #define NUM (M+1)*M/2 main() int i,n=0; for(i=1;i<=NUM;i+) n+;printf(“%d”,n); printf(“n”); A.5 B.6 C.8 D.9二、填空题:

27、1. 表示条件:10<x<100或x<0的C语言表达式是 。2. 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 。3. 为表示关系x³y³z,应使用C语言表达式是 。4. 表达式:10!=9的值是 。5. 能正确表示a³10或a£0的关系表达式是 。6. 若已知a=10,b=20,则表达式!a<b的值为 。7. 为了避免嵌套的条件语句if-else的二义性,C语言规定:else与 匹配。8. C语言用 表示逻辑“真”值。9当a=3,b=2,c=1时,表达式f=a>b>c的值是 。10设

28、y为int型变量,请写出描述“y是奇数”的表达式 。11设x,y,z为int型变量,请写出描述“x或y中有一个小于z”的表达式 。12已知a=7.5,b=2,c=3.6,表达式a>b && c>a|a<b && !c>b的值是 。13while(x)表示while(x )。14break语句表示 。15while(1)表示 。16. 执行for(i=1,s=0;i<=100;i+) s+=i; 后, s的值为 。17 程序: i=1;s=0;do s=s+i; i+;while (i<=100); 用for语句改写上面的程序段

29、为 。18 程序段:for (i=1; i<=2; i+) scanf(“%d,%d”,&x,&y); if (x>y) t=x; x=y; y=-t; printf(“%d %d”,x,y); 执行该程序段时,若键盘输入5, 4回车及1, 2回车,则输出结果为 。19 执行下列语句: for (i=1,s=0; i<=2; i+) for (j=1; j<=3; j+) s=s+i+j; 后,s的值为 。20 执行下列语句:scanf (“%c”,&ch);while (ch!=# ) printf(“%c”, ch+1); scanf (“%

30、c”,&ch); 要使得输出结果为cdef, 则输入为 。 21. 以下程序当键盘输入1 2 3 4 5 -1<回车>时,运行结果是: #include “stdio.h” main() int k=0,n; doscanf(%d”,&n);k+=n; while (n!=-1); printf(“k=%d n=%dn”,k,n); 22. 下列程序段的运行结果是: for(i=4;i<=1;i-) for(j=1;j<=i;j+) putchar(#); 23.下列程序段要求从键盘输入字符,当输入字母为Y时,循环停止,填空. while (_!=Y).

31、三、判断题:1. 下面程序 main() int x=3,y=0,z=0; if (x=y+z) printf(“*”); else printf(“#”); 执行该程序后输出为 # 。( )2. 若K是int型变量,且有下面的程序段: k=-3 if (k<=0) printf(“#”) else printf(“&&&&”);上面程序段的输出结果是 # 。( )3. 设x和y都是int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是交换x和y的值。( )4. 设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&

32、;&(n=c>d)后n的值为0。( ) 5. C语言中无逻辑变量,也无逻辑表达式。( )6do while(0); 程序块至少会执行一次.( )7语句 for(i=0;i=10;i+) -; 至多循环10次. ( )8求一批整数中的最大,最小数分别是多少的程序如下: ( )#include “stdio.h”main() int n,i,max,min,p; scanf(“%d %d”, &n,&p); for (i=1,max=p,min=p; i<n; i+) scanf(“%d”, &p); if (p>max) max=p; if (p

33、<min) min=p; printf(“max=%d,min=%d”,max,min); 9for(;)表示无限循环. ( )10下面的循环不能正常结束. ( ) for (s=0,i=1; i<=10; ) s=s+i; i+; 11continue语句是终止整个循环的执行. ( ) 12对for(表达式1;表达式3;)可理解为for(表达式1;1;表达式3;)( ) 13下列程序段执行循环二次 ( ) x=-1; do x=x*x;while(!x);14. 下列程序段能计算s=10!的值 ( ) i=1;s=1; dos=s*i;i+;while(i<=10);15.

34、 下列程序段将输出3和0 ( ) int x=3; do printf(“%dn”,x-=2);while(!-x);四、程序阅读题:1. 以下程序输出的结果是 。main() int m=5; if (m+>5) printf(“%dn”,m); else printf(“%dn”,m-); 2. 请读程序:#include <math.h>#include <stdio.h>main() float x ,y,z;scanf(“%f%f”,&x,&y); z=x/y; while(1) if (fabs(z)>1.0) x=y; y=z;

35、 z=x/y; else break; printf(“%fn”,y); 若运行时从键盘上输入3.6 2.4<回车>,则输出结果为 。3. 以下程序的运行结果是 。 main() int x=1,y=1,z=1; y=y+z; x=x+y; printf(“%d,”,x<y?y:x); printf(“%d,”,x<y?x+:y+); printf(“%d,%d”,x,y); 4.以下程序的运行结果是 。 main() int x,y,z; x=3; y=z=4; printf(“%d,”,(x>=y>=x)?1:0); printf(“%dn”,z>

36、=y&&y>=x); 5. 下列程序的输出结果为 main() int s=7; do s-=2;while(s=0); printf(“s=%dn”,s); 6. 下列程序段的输出结果为 #include “stdio.h” main() int s=0,k; for(k=7;k>=0;k-) switch(k) case 1: case 4: case 7: s+; break; case 2: case 3: case 6: break; case 0: case 5: s+=2; break; printf(“s=%dn”,s); 7. 下列程序的输出结果为 main() int i,j; for(i=4;i>=1;i-) printf(“*”); for(j=1;j<=4-i;j+) printf(“*”); printf(“n”); 8. 下列程序的运行结果为 main() int i,j,sum,m,n=4; sum=0;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论