《2022年C练习题库及答案.docx》由会员分享,可在线阅读,更多相关《2022年C练习题库及答案.docx(62页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源C 选择题部分共 200 题欢迎下载精品学习资源1、下面程序的输出是 D #includevoid main int k=11; printfk=%d,k=%o,k=%xn,k,k,k;A k=11,k=12,k=11B k=11,k=13,k=13C k=11,k=013,k=0xbD k=11,k=13,k=bint x=023; printf%dn,-x;A 17B 18C 23D 2411、下面程序的输出的是 C. #includevoid mainint x=10,y=3; printf%dn,y=x/y;欢迎下载精品学习资源2、在以下选项中 ,不正确的赋值语句是 D.
2、A +t;B n1=n2=n3=0;C k=i=j;D a=b+c=1;A 0B 1C 3D不确定的值12、已知字母 A 的 ASCII 码为十进制的 65,下面程序欢迎下载精品学习资源3、下面合法的 C 语言字符常量是 A.的输出是A.欢迎下载精品学习资源A tB AC 65D A4、表达式 : 10.=9 的值是D.A trueB 非零值C 0D 15 、 C语 言 提 供 的 合 法 的 数 据 类 型 关 键 字 是 B.A DoubleB shortC integerD Char6 、字符 char 型数据在微机内存中的储备形式是#include void mainchar ch1,
3、ch2; ch1=A+5-3;ch2=A+6-3;printf%d,%cn,ch1,ch2;A 67,DB B,CC C,DD 不确定的值13、假设要求在 if 后一对圆括号中表示a 不等于 0 的欢迎下载精品学习资源 D.关系 ,就能正确表示这一关系的表达式为 D.欢迎下载精品学习资源A反码B补码C EBCDIC 码D ASCII 码A a0B .aC a=0D a欢迎下载精品学习资源7、C 语言程序的基本单位是C.A程序行B语句C 函数D 字符8、设 int a=12,就执行完语句 a+=a-=a*a 后,a 的值是14、以下程序的输出结果是#includevoid main int x=
4、10,y=10; D.欢迎下载精品学习资源 D A 552B 264C 144D -2649 、 执 行 下 面 程 序 中 的 输 出 语 句 后 , 输 出 结 果 是 B.#include void mainint a; printf%dn,a=3*5,a*4,a+5;A 65B 20C 15D 1010、下面程序的输出是 B. #includevoid mainprintf%d %dn,x-,-y;A 10 10B 9 9C 9 10D 10 915、设有如下定义 :int x=10,y=3,z;就语句printf%dn,z=x%y,x/y;的输出结果是D.A 1B 0C 4D 316
5、 、为表示关系x y z, 应使用C语言表达式 A.A x=y&y=zB x=yANDy=zC x=y=zD x=y & y=z欢迎下载精品学习资源A 8,10,8,10B 9,11,8,1017、C 语言中非空的基本数据类型包括 B.C 9,11,9,10D 9,10,9,11A整型 ,实型 ,规律型B 整型 ,实型 ,字符型C 整型 ,字符型 ,规律型22 、 已 知a=12, 就 表达 式a+=a-=a*=a的 结 果 是D整型 ,实型 ,规律型 ,字符型 A.18、假设 x 和 y 都是 int 型变量 ,x=100,y=200, 且有下面A 0B 144C 12D -264欢迎下载精
6、品学习资源的程序片段 :printf%d,x,y;上面程序片段的输出结果是A 200B 100 A.23、假设已定义int a,就表达式a=10,a+10,a+的值是 B_.A 20B 10C 21D 11欢迎下载精品学习资源C 100 200D 输出格式符不够 ,输出不确定的值24、阅读下面的程序#include欢迎下载精品学习资源19、阅读下面的程序#includevoid mainvoid mainint i,j;scanf%3d%2d,&i,&j;char ch;printfi=%d,j=%dn,i,j;scanf%3c,&ch;printf%c,ch;假如从键盘上输入1234567,
7、就程序的运行结果是D.假如从键盘上输入A i=123,j=4567B i=1234,j=567abc就程序的运行结果是 A.C i=1,j=2D i=123,j=45A aB bC cD程序语法出错25、下面程序的输出结果是 D.20、阅读下面的程序#include#include voidmainvoid mainint a=-1, b=4, k;k=+a=0&b-=0;int i,j;printf%d,%d,%dn,k,a,b;i=010;j=9;A 1,1,2B 1,0,3C 0,1,2D 0,0,3printf%d,%d,i-j,i+j;就程序的运行结果是 D.26、下面程序的输出结果
8、是 A.#includeA 1,19B -1,19C 1,17D -1,17void main21、阅读下面的程序int a=5,b=3;#includefloat x=3.14, y=6.5;void mainprintf%d,%dn,a+b.=a-b,x=y-=6.1;int i,j,m,n;A 1,0B 0,1C 1,1D 0,0i=8;j=10;m=+i;27、执行下面程序段后 ,输出结果是 A.n=j+;int a;printf%d,%d,%d,%d,i,j,m,n;int b=65536;a=b;程序的运行结果是C.printf%dn,a;欢迎下载精品学习资源A 65536B 0C
9、 -1D 128、假设有以下定义和语句: int a=010, b=0x10, c=10;printf%d,%d,%dn,a,b,c;就输出结果是 B.A 10,10,10B 8,16,10C 8,10,10D 8,8,1029、已知有 double 型变量 x=2.5,y=4.7, 整型变量 a=7,就表达式 x+a%3*intx+y%2/4的值是B. A 2.4B 2.5C 2.75D 030、假设已定义x和 y 是整型变量 ,x=2;, 就表达式y=2.75+x/2 的值是 C.C) 静态变量的生存期与整个程序的生存期相同D) C 语言中变量必需先定义后引用38、C 语言中的变量名只能由
10、字母,数字和下划线三种字符组成 ,且第一个字符 C.A) 必需为字母B) 必需为下划线C) 必需为字母或下划线D) 可以是字母 ,数字或下划线中的任意一种39、设有说明 :char w; int x; float y; double z;就表达式 : w*x+z-y值的数据类型是 D.A floatB charC intD double欢迎下载精品学习资源A 5.5B 5C 3D 4.040、一个C 语言的执行是从 A.A本程序的主函数开头 ,到本程序的主函数终止31、以下程序的输出结果是#include D.B本程序的第一个函数开头,到本程序的最终一个函数终止voidmainC本程序的主函数
11、开头,到本程序的最终一个函数结束欢迎下载精品学习资源int a=12, b=12; printf%d,%dn,-a,+b;A 10,10B 12,12C 11,10D 11,1332、设有以下语句:intx=10;x+=3+x%3,就 x的值是.A D 本程序的第一个函数开头,到本程序的主函数终止41、设 a 为整型变量 ,不能正确表达数学关系10a15的 C 语言表达式是 A.A 10a10&a15D .a=15欢迎下载精品学习资源A 14B 15C 11D 1233、假设 d 为 double 型变量 ,就表达式 d=1,d+5,d+ 的值是D.A 1B 6.0C 2.0D 1.042、以
12、下程序执行后的输出结果是#include void main int a=5,b=60,c; if ab C.欢迎下载精品学习资源34、表达式 5.=3 的值是 D.A TB非零值C 0D 135、假设有定义 int a=12,n=5, 就表达式 a%=n%2 运算后,a 的值A.A 0B 1C 12D 636、假设有定义 int x=3,y=2和 float a=2.5,b=3.5, 就表达式:x+y%2+inta/intb的值是 D.A 0B 2C 1.5D 137 、 在C语 言 中 , 以 下 表 达 不 正 确 的 选 项 是 A.A) 在 C 程序中 ,无论是整数仍是实数 ,都能被
13、精确无误的表示B) 在 C 程序中 ,变量名代表储备器中的一个位置c=a*b;printf%d*%d=%dn,b,a,c; elsec=b/a;printf%d/%d=%dn,b,a,c;A 60/5=12B 300C 60*5=300D 1243、假如 c 为字符型变量,判定c 是否为空格不能使用A. 假设已知空格ASCII 码为 32A ifc=32B ifc=32C ifc=40D ifc=44、运行下面程序时, 假设从键盘输入 3,5 ,就程序的输出结果是D.#include void main int x,y;欢迎下载精品学习资源scanf%d,%d,&x,&y; if x=ypri
14、ntfx=y; else if xyprintfxy; elseprintfxy;A 33C xyD xy45 、 运 行 下 面 程 序 时 , 假 设 从 键 盘 输 入 数 据 为6,5,7 ,就输出结果是 C. #include void main int a,b,c; scanf%d,%d,%d,&a,&b,&c; if abif acprintf%dn,a; elseprintf%dn,c;elseif bcprintf%dn,b;elseprintf%dn,c;A 5B 6C 7D不定值46、执行下面程序时 ,假设从键盘输入 2 ,就程序的运行结果是 A.#include voi
15、d main int k; char cp; cp=getchar ;if cp=0 & cp=a & cp=fk=cp-a+10; elsek=cp-A+10;printf%dn,k;A 2B 4C 1D 1047、运行下面程序时,从键盘输入 2.0 ,就输出结果是 B.#include void main float a,b;scanf%f,&a;if a0.0 b=0.0;else if a0.5 & a.=2.0b=1.0/a+2.0; else if a10.0 b=1.0/2;else b=10.0;printf%fn,b;A 0.000000B 0.500000C 1.00000
16、0D 0.25000048、执行下面程序后 ,运行结果是 A. #include void main int x=41,y=1;if x%3=0 & x%7=0 y+=x;printfy=%dn,y; elsey=x;printfy=%d,y;A y=41B y=43C y=42D y=149、运行下面程序时,从键盘输入12,34,9 ,就输出结果是 A.#include void main int x,y,z; scanf%d,%d,%d,&x,&y,&z; if xyif yzprintf%dn,z; else printf%dn,y;else if xzprintf%dn,z; else
17、 printf%dn,x;A 34B 12C 9D不确定的值50、运行下面程序时,从键盘输入字母H,就输出结果是C.#include void main char ch;ch=getchar ; switchch case H:printfHello.n;case G:printfGood morning.n; default:printfBye_Bye.n;A Hello.B Hello.Good Morning.欢迎下载精品学习资源C Hello.D Hello.Good morning.Bye_Bye. Bye_Bye.56、以下程序的执行结果是#include void main in
18、t x=0,y=1,z=0; D.欢迎下载精品学习资源51、执行以下程序段后的输出结果是 A.if x=z=yint x=1,y=1,z=1;x=3;x+=y+=z;printf%d,%dn,x,z;printf%dn,x=A & ch=Z.ch+32:ch的值是 B.A ZB aC zD A57、假定等级和分数有以下对应关系: 等级: A分数: 85100等级: B分数: 6084等级: C分数: 60 以下欢迎下载精品学习资源53、下面程序的输出结果是#include void main int x=8,y=-7,z=9; if xyif y0 z=0;else z-=1; printf%
19、dn,z; C.对于等级grade 输出相应的分数区间,能够完成该功能的程序段是 D.A) switch gradecase A:printf85-100n;case B:printf60-84n;case C:printf60 以下n; default:printf 等级错误 .n;欢迎下载精品学习资源A 8B 1C 9D 0B) switch grade欢迎下载精品学习资源54、运行下面程序时 ,假设从键盘输入5 , 就程序case A:printf85-100n;break;的输出结果是B.case B:printf60-84n;#include case C:printf60 以下n;
20、void main default:printf等级错误 .n; int a ;scanf%d,&a;Cswitch gradeif a+5printf%dn,a;else printf%dn,a- ;case A:printf85-100n;break;case B:printf60-84n;break;A 7B 6C 5D 4case C:printf60 以下n;default:printf 等级错误 .n;55、运行下面程序时,假设从键盘输入就程序的输出结果是 B.3, 4 ,D switch grade#include void main case A:printf85-100n;b
21、reak; int a,b,s;case B:printf60-84n;break;scanf%d,%d,&a,&b;case C:printf60 以下 n;break;s=a;default:printf 等级错误 .n;if sb s=b;s=s*s;printf%dn,s ;58、能够完成如下函数运算的程序段是 B. -1x0欢迎下载精品学习资源A y=1;B if x=0d=20;ifx.=0ifx0 y=1;if a d=d-10;ifx0 y=1;else y=0;else if.belse y=0;else y=-1;if .c x=15;C y=0;D y=-1;else x
22、=25;if x=0if x0 y=1;printfd=%dn,d;if x0 y=1;else y=0;else y=-1;A d=20B d=10C d=15D 25欢迎下载精品学习资源59、有如下程序#include void main float x=5.0,y; ifx0.0 y=0.0;else if x10.0 y=1.0/x; else y=1.0; printf%fn,y;该程序的输出结果是 C. A 0.000000B 0.50000C 0.200000D 1.00000062、有如下程序 :#include void main int a=2,b=-1,c=2; if a
23、bif b0 c=0; else c+;printf%dn,c;该程序的输出结果是 C.A 0B 1C 2D 3欢迎下载精品学习资源60、以下程序的执行结果是#include void main int x=1,y=0; switch xcase 1:switch y B.63、以下程序执行后的输出结果是#include void main int x,y=1,z;if z=y0x=4; else if y=0 x=5;else x=6; printf%d,%dn,x,y; B.欢迎下载精品学习资源case 0:printffirstn;break; case 1:printfsecondn;
24、break;case 2:printfthirdn;A firstB firstsecondthirdC) firstD secondthirdA 4,1B 6,1C 5,0D出错信息64、有如下程序#include void main int x=1,a=0,b=0; switchxcase 0: b+;case 1: a+;case 2: a+;b+;欢迎下载精品学习资源61、以下程序的执行结果是#include A.printfa=%d,b=%dn,a,b;欢迎下载精品学习资源voidmain int a,b,c,d,x; a=c=0;该程序的输出结果是A.A a=2,b=1B a=1,
25、b=1C a=1,b=0D a=2,b=2欢迎下载精品学习资源b=1;65、下面程序的输出结果是 C.欢迎下载精品学习资源#include void main int a=-1,b=1,k;if +a0 & b-5 printf%dn,x;else printf%dn,x-;printf%d %dn,a,b;A 7B 6C 5D 4elseprintf%d %dn,b,a;71、以下程序段运行结果是 A.int x=1,y=1,z=-1;A -1 1B 0 1C 1 0D 0 0x+=y+=z;66、假定序段:w、x、y、z、m 均为int 型变量,有如下程printf%dn,x100 pri
26、ntf%dn,a100;输出结果是 A.else printf%dn,a=100;A 2,1B 3,2C 4,3D 2,-1A a=100B 100C 0D 173、运行下面程序时,假设从键盘输入数据为123 , 就输出结果是 C.68、假设执行下面的程序从键盘上输入9,就输出结果#include stdio.h是.B void main#include int num,i,j,k,place;void main scanf%d,#int n;if num99scanf%d,&n;place=3;if n+9else printf%dn,n-;place=2;A 11B 10C 9D
27、8elseplace=1;69、以下程序输出结果是 D.i=num/100;#include j=num-i*100/10;void main k=num-i*100-j*10; int m=4;switch placeif +m5 printf%dn,m-; case 3: printf%d%d%dn,k,j,i;else printf%dn,-m;break;case 2: printf%d%dn,k,j;A 7B 6C 5D 4break;case 1: printf%dn,k;70、假设执行下面的程序从键盘上输入5,就输出结果是.#include A 123B 1,2,3C 321D
28、3,2,1void main int x;74、执行以下程序后的输出结果是 D.m=wx.w:x;m=my.m:y;m=mz.m:z;72、有以下程序#include 欢迎下载精品学习资源#include void main int k=4,a=3,b=2,c=1; printf%dn,ka.k:cb.c:a;A) 缩排位置相同的 ifB) 在其之前未配对的ifC) 在其之前尚未配对的最近的ifD) 同一行上的 if欢迎下载精品学习资源A 4B 3C 2D 175、以下条件表达式中能完全等价于条件表达式x 的是B.A x=0B x.=0C x=1D x.=176、假设运行下面程序时,给变量 a
29、 输入 15,就输出结果是 A.#include void main int a,b;scanf%d,&a; b=a15.a+10:a-10;printf%dn,b ;80、设 x 、y 、z 、t 均为 int 型变量 ,就执行以下语句后,t 的值为 C.x=y=z=1;t=+x | +y & +z;A不定值B 4C 1D 081、以下程序段 C. x=-1;dox=x*x;while .x;A 是死循环B 循环执行两次C循环执行一次D 有语法错误欢迎下载精品学习资源A 5B 25C 15D 1077、运行下面程序后,输出是 D. #include void main int k=-3;if
30、 k=0 printf*n; else printf#n82、对下面程序段描述正确的选项是int x=0,s=0;while .x.=0 s+=+x; printf%d,s;A) 运行程序段后输出0B) 运行程序段后输出1C) 程序段中的把握表达式是非法的D) 程序段循环许多次 B.欢迎下载精品学习资源A #B *C #*83、下面程序段的输出结果是x=3;do y=x-; C.欢迎下载精品学习资源D有语法错误不能通过编译78、执行下面程序的输出结果是#include void main C.if .y printf*;continue; printf#; whilex=2;A #B #*C
31、死循环D输出错误信息欢迎下载精品学习资源 int a=5,b=0,c=0;if a=a+b printf*n; elseprintf#n;A) 有语法错误不能编译B) 能通过编译,但不能通过连接C) 输出 *84、下面程序的运行结果是#include void main int a=1,b=10;do b-=a;a+; whileb-0; B.欢迎下载精品学习资源D) 输出 #79、为了防止嵌套的if-else 语句的二义性, C 语言规定 else 总是与 C组成配对关系 .printf%d,%dn,a,b;A 3,11B 2,8C 1,-1D 4,9欢迎下载精品学习资源85、下面程序段的运
32、行结果是 B.void main int n=0; int a,b;while n+=2a=-1;printf%d,n;b=0;A 012B 123C 234D错误信息do +a;86、下面程序段的运行结果是 D.+a;int x=0,y=0;b+=a;while x15 y+,x+=+y; whilea9;printf%d,%d,y,x;printf%dn,b;A 20,7B 6,12C 20,8D8,2087、下面程序的运行结果是 B.A 34B 24C 26D 25#include void main91、下面程序段的运行结果是fori=1;i=5; D. int s=0,i=1;printf%d,i;while s=10i+; s=s+i*i;A 12345B 1234C 15D无限循环i+;92、下面程序的输出结果是 B.printf%d,-i;#includevoidmain A 4B 3C 5D 6 int n=4;欢迎下载精品学习资源88、函数