大一C语言习题练习及答案.docx
第一章第一章程序设计与程序设计与 C 语言语言1.1 选择题选择题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项 A 中的“-”,选项 B 中“”与“”不满足(1);选项 D 中的 int 为关键字,不满足(3)1.下列正确的标识符是(C)。A.-a1B.aiC.a2_iD.int t2.下列 C 语言用户标识符中合法的是(B)。A)3axB)xC)caseD)-e2E)union选项 A 中的标识符以数字开头不满足(2);选项 C,E 均为为关键字,不满足(3);选项 D 中的“-”不满足(1);3.下列四组选项中,正确的 C 语言标识符是(C)。A)%xB)a+bC)a123D)123选项 A 中的“%”,选项 B 中“+”不满足(1);选项 D 中的标识符以数字开头不满足(2)4.下列四组字符串中都可以用作 C 语言程序中的标识符的是(A)。A、print_3ddb8aBcB、Iamone_halfstart$it3paiC、str_1CpppowwhileD、PxqMy-bookline#His.age选项 B 中的“”,”$”,选项 D 中“”,”#”,”.”,”-”不满足(1);选项 C 中的 while 为关键字,不满足(3)知识点:简单 C 语言程序的构成和格式5.在一个 C 程序中_B_。A、main 函数必须出现在所有函数之前B、main 函数可以在任何地方出现C、main 函数必须出现在所有函数之后D、main 函数必须出现在固定位置6.以下说法中正确的是_D_。A、#define 和 printf 都是 C 语句B、#define 是 C 语句,而 printf 不是C、printf 是 C 语句,但#define 不是D、#define 和 printf 都不是 C 语句7.一个 C 程序的执行是从(A)。A 本程序的 main 函数开始,到 main 函数结束B 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C 本程序的 main 函数开始,到本程序文件的最后一个函数结束D 本程序文件的第一个函数开始,到本程序 main 函数结束8.在 C 语言中,每个语句必须以(D)结束。A.回车符B.冒号C.逗号D.分号9.C 语言规定:在一个源程序中,main 函数的位置(C)。A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后10.一个 C 语言程序是由(B)。A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成11.下列说法中错误的是(D)。A.主函数可以分为两个部分:主函数说明部分和主函数体B.主函数可以调用任何非主函数的其他函数C.任何非主函数可以调用其他任何非主函数D.程序可以从任何非主函数开始执行12.用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将(C)。A.生成可执行目标文件 B.生成目标文件C.输出运行结果 D.自动保存源文件1.2 填空题填空题1、C 语言只有 32 个关键字和 9 种控制语句。2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行 C 语言程序。3、C 语言程序的注释可以出现在程序中的任何地方,它总是以*符号作为开始标记,以*/符号作为结束标记。4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函数 printf 完成的。5、系统默认的 C 语言源程序文件的扩展名是.c,经过编译后生成的目标文件的扩展名是.obj,经过连接后生成的可执行文件的扩展名是.exe。6、C 语言的标识符只能由字母、数字和下划线三种字符组成。第二章第二章CH2 数据的存储与运算数据的存储与运算2.1 选择题选择题1.C 语言中的简单数据类型包括(D)。A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型C、整型、字符型、逻辑型D、整型、实型、字符型2.在 C 语言程序中,表达式 5%2 的结果是C。A)2.5B)2C)1D)3%为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1;5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;/为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=23.设 int a=12,则执行完语句 a+=a-=a*a 后,a 的值是_D_。A、552B、264C、144D、-2644.以下变量 x、y、z 均为 double 类型且已正确赋值,不能正确表示数字式子 x/(y*z)的 C 语言表达式是_A_。A、x/y*zB、x*(1/(y*z)C、x/y*1/zD、x/y/z5.若有定义:int a=8,b=5,c;,执行语句 c=a/b+0.4;后,c 的值是_B_。A、1.4B、1C、2.0D、26.以下选项中,不能作为合法常量的是_B_。A、1.234e04B、1.234e0.4C、1.234e+4D、1.234e07.以下符合 C 语言语法的实型常量是_C_。A、1.2E0.5B、3.14159EC、.5E-3D、E158.表达式 3.6-5/2+1.2+5%2 的值是_D_。A、4.3B、4.8C、3.3D、3.89.下列定义变量的语句中错误的是_D_。A、int _intB、double int_ C、char ForD、float US$10.以下不合法的用户标识符是_C_。A、j2_KEYB、DoubleC、4dD、_8_11.以下 4 组用户定义标识符中,全部合法的一组是_A_。A、_main enclude sinB、If-max turboC、txt REAL 3COMD、int k_2 _001?12.以下定义语句中正确的是_C_。A、char a=A b=B;B、float a=b=10.0;(正解 a=10.0 b=10.0)C、int a=10,*b=&a;D、float*a,b=&a;?13.以下不能定义为用户标识符的是_D_。A、scanfB、VoidC、_3com_D、int14.以下有 4 组用户标识符,其中合法的一组是_C_。A、For-sub CaseB、4d DO SizeC、f2_G3 IF abcD、WORD Void define15.C 语言中最简单的数据类型包括_B_。A、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型16.下列选项中,合法的 C 语言关键字是_D_。A、VARB、cherC、integerD、default17.以下不能定义为用户标识符的是_D_。A、MainB、_0C、_intD、sizeof18 下列叙述中正确的是_D_。A、C 语言中既有逻辑类型也有集合类型B、C 语言中没有逻辑类型但有集合类型C、C 语言中有逻辑类型但没有集合类型D、C 语言中既没有逻辑类型也没有集合类型19.设 int a=12,则执行完语句 a+=a-=a*a 后,a 的值是_D_。A、552B、264C、144D、-26420.以下变量 x、y、z 均为 double 类型且已正确赋值,不能正确表示数字式子 x/(y*z)的 C 语言表达式是_A_。A、x/y*zB、x*(1/(y*z)C、x/y*1/zD、x/y/z21.若有定义:int a=8,b=5,c;,执行语句 c=a/b+0.4;后,c 的值是_B_。A、1.4B、1C、2.0D、222.设有定义:float a=2,b=4,h=3;,以下 C 语言表达式与代数式 1/2(a+b)h)计算结果不相符的是_B_。A、(a+b)*h/2B、(1/2)*(a+b)*hC、(a+b)*h*1/2D、h/2*(a+b)23.假定 x 和 y 为 double 型,表达式 x=2,y=x+3/2 的值是_D_。A、3.500000B、3C、2.000000D、3.00000024.若已定义 x 和 y 为 double 类型,则表达式 x=1,y=x+3/2 的值是_C_。A、1B、2C、2.000000D、2.50000025.若有以下程序段int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3 中的值是_A_。A、0B、0.5C、1D、226.设有 int x=11;则表达式(x+*1/3)的值是_A_。?A、3B、4C、11D、1227.下列程序的输出结果是_C_。main()double d=3.2;int x,y;x=1.2;y=(x+3.8)/5.0;printf(%d n,d*y);A、3B、3.2C、0D、3.0728.请读程序片段:int i=65536;printf(%dn,i);上面程序片段的输出结果是_B_。A、65536B、0C、有语法错误,无输出结果D、-129.若有以下定义和语句:int u=010,v=0 x10,w=10;printf(%d,%d,%dn,u,v,w);则输出结果是:_A_。A、8,16,10B、10,10,10C、8,8,10D、8,10,1030.在 C 语言中,不正确的 int 类型的常数是_A_。A、32768B、0C、037D、0 xAF31.以下程序的输出结果是_D_。main()int k=17;printf(%d,%o,%x n,k,k,k);A、17,021,0 x11B、17,17,17C、17,0 x11,021D、17,21,1132.下面程序的输出是_C_。main()unsigned a=32768;printf(a=%dn,a);A、a=32768B、a=32767C、a=-32768D、a=-133.在 C 语言中,合法的长整型常数是_A_。A、0LB、4962710C、324562&D、216D34.C 语言中运算对象必须是整型的运算符是_A_。A、%=B、/C、=D、5)printf(%dn,x);else printf(%dn,x-);则输出是_B_。A、7B、6C、5D、438.有以下程序main()char a1=M,a2=m;printf(%cn,(a1,a2);以下叙述中正确的是_B_。A、程序输出大写字母 MB、程序输出小写字母 mC、格式说明符不足,编译出错D、程序运行时产生出错信息39.以下程序的输出结果是 _B_。main()int a;printf(%dn,(a=3*5,a*4,a+5);A、65B、20C、15D、1040.设有如下程序段int x=2002,y=2003;printf(%dn,(x,y);则以下叙述中正确的是_D_。A、输出语句中格式说明符的个数少于输出项的个数,不能正确输出B、运行时产生错误信息C、输出值为 2002D、输出值为 200341 有以下程序main()int x,y,z;x=y=1;z=x+,y+,+y;printf(%d,%d,%dn,x,y,z);程序运行后的输出结果是_C_。A、2,3,3B、2,3,2C、2,3,1D、2,2,142.设有以下定义int a=0;double b=1.25;char c=A;#define d 2则下面语句中错误的是_D_。A、a+;B、b+;C、c+;D、d+;43.以下程序的输出结果是_D_。main()int x=10,y=10;printf(%d%dn,x-,-y);A、10 10B、99C、9 10D、10 944.若 x 和 y 都是 int 型变量,x=100、y=200,且有下面的程序片段printf(%d,(x,y);上面程序片段的输出结果是_A_。A、200B、100C、100 200D、输则格式符不够,输出不确定的值45.设有如下定义:int x=10,y=3,z;则语句printf(%dn,z=(x%y,x/y);的输出结果是_D_。A、1B、0C、4D、346.两次运行下面的程序,如果从键盘上分别输入 6 和 4,则输出结果是_A_。main()int x;scanf(%d,&x);if(x+5)printf(%d,x);elseprintf(%dn,x-);A、7 和 5B、6 和 3C、7 和D、6 和 447.若 t 为 double 类型,表达式 t=1,t+5,t+的值是_D_。A、1B、6.0C、2.0D、1.048.以下程序的输出结果是_A_。#includemain()int i=10,j=10;printf(%d,%dn,+i,j-);A、11,10B、9,10C、010,9D、10,949.有以下程序main()int y=10;while(y-);printf(y=%dn,y);程序执行后的输出结果是_B_。A、y=0B、y=-1C、y=1D、while 构成无限循环50.下列程序的输出结果是(B)。main()int a=7,b=5;printf(%dn,b=b/a);A、5B、1C、0D、不确定值51.以下选项中,不正确的 C 语言浮点型常量是(C)。A160B.0.12C.2e4.2D.0.052.以下选项中,(D)是不正确的 C 语言字符型常量。A.aB.x41C.101D.a53.在 C 语言中,字符型数据在计算机内存中,以字符的(C)形式存储。A.原码B.反码C.ASCII 码D.BCD 码54.若 x、i、j 和 k 都是 int 型变量,则计算下面表达式后,x 的值是(C)。x=(i=4,j=16,k=32)A.4B.16C.32D.5255.算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。A.算术运算、赋值运算、关系运算 B.算术运算、关系运算、赋值运算C.关系运算、赋值运算、算术运算 D.关系运算、算术运算、赋值运算56.若有代数式,则不正确的 C 语言表达式是(C)。A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*357.表达式!x|a=b 等效于(D)。A.!(x|a)=b)B.!(x|y)=bC.!(x|(a=b)D.(!x)|(a=b)58.设整型变量 m,n,a,b,c,d 均为 1,执行(m=ab)&(n=cd)后,m,n 的值是(A)。A.0,0B.0,1C.1,0D.1,159.设有语句 int a=3;,则执行了语句 a+=a-=a*=a;后,变量 a 的值是(B)。A.3B.0C.9D.-1260.在以下一组运算符中,优先级最低的运算符是(D)。A.*B.!=C.+D.=61.设整型变量 i 值为 2,表达式(+i)+(+i)+(+i)的结果是(B)。A.6B.12C.15D.表达式出错62.若已定义 x 和 y 为 double 类型,则表达式 x=1,y=x+3/2 的值是(C)。A.1B.2C.2.0D.2.563.sizeof(double)的结果值是(A)。A.8B.4C.2D.出错64.设 a=1,b=2,c=3,d=4,则表达式:ab?a:cd?a:d 的结果为(D)。A.4B.3C.2D.165.设 a 为整型变量,不能正确表达数学关系:10a15 的 C 语言表达式是(A)。A.10a10&a15D.!(a=15)66.设 f 是实型变量,下列表达式中不是逗号表达式的是(D)。A.f=3.2,1.0B.f0,f0D.f=(3.2,1.0)67.表达式 18/4*sqrt(4.0)/8 值的数据类型是(C)。A.intB.floatC.doubleD.不确定68.已知字母 A 的 ASCII 码为十进制数 65,且 c2 为字符型,则执行语句C2=A+6-3;后 c2 中的值是(A)。A.DB.68C.不确定的值D.C69.以下用户标识符中,合法的是(B)。A.intB.nitC.123D.a+b70.C 语言中,要求运算对象只能为整数的运算符是(A)。A.%B./C.D.*71.若有说明语句:char c=72;则变量 c 在内存占用的字节数是(A)。A.1B.2C.3D.472.字符串ABC在内存占用的字节数是(B)。A.3B.4C.6D.873.要为字符型变量 a 赋初值,下列语句中哪一个是正确的(B)。A.char a=3;B.char a=3;C.char a=%;D.char a=*;74.下列不正确的转义字符是(C)。A.B.C.074D.02.2 填空题填空题1、C 语言中的逻辑值“真”是用 1 表示的,逻辑值“假”是用 0 表示的。2、若 x 和 n 都是 int 型变量,且 x 的初值为 12,n 的初值为 5,则计算表达式 x%=(n%=2)后x 的值为 0。3、设 c=w,a=1,b=2,d=-5,则表达式 x+1c,y!=c+2,-a-5*b=d+1,b=a=2 的值分别为 1、0、1、1。4、设 float x=2.5,y=4.7;int a=7;,表达式 x+a%3*(int)(x+y)%2/4 的值为 2.5。5、判断变量 a、b 的值均不为 0 的逻辑表达式为 a!=0&b!=0。6、求解赋值表达式 a=(b=10)%(c=6),表达式值、a、b、c 的值依次为 4,4,10,6。7、求解逗号表达式 x=a=3,6*a 后,表达式值、x、a 的值依次为 18,3,3。8、数学式 a/(b*c)的 C 语言表达式 a/b/c。9、若有语句int i=-19,j=i%4;printf(%dn,j);则输出结果是_。答案:-310、设 y 是 int 型变量,请写出判断 y 为奇数的关系表达式_ y%2_。第三章第三章CH3 顺序程序设计顺序程序设计3.1 选择题选择题1.如果 int a=3,b=4;则条件表达式ab?a:b的值是_A_。A)3B)4C)0D)1表达式 1?表达式 2:表达式 3先计算表达式 1,若表达式 1 成立,则选择计算表达式 2,并表达式 2 的值作为整个大表达式的值;若表达式 1 不成立,则选择计算表达式 3,并将表达式 3 的值作为整个大表达式的值此题中的 ab 相当于表达式 1,a 相当于表达式 2,b 相当于表达式 3.a 为 3,b 为 4。ab 表达式 1 成立,因此计算表达式 2,并将表达式 2 的值即 a 中的值,并作为整个表达式的值,因此整个表达式的值为 32.若 int x=2,y=3,z=4 则表达式 xz?y:z 的结果是(B).A)4B)3C)2D)0E)13.C 语言中,关系表达式和逻辑表达式的值是(B)。A)0B)0 或 1C)1D)T或F4.下面(D)表达式的值为 4.A)11/3B)11.0/3C)(float)11/3D)(int)(11.0/3+0.5)(1)相同数据类型的元素进行数学运算(+、-、*、/)得到结果还保持原数据类型。(2)不同数据类型的元素进行数学运算,先要统一数据类型,统一的标准是低精度类型转换为高精度的数据类型。选项 A,11 与 3 为两个整数,11/3 结果的数据类型也应为整数,因此将 3.666666 的小数部分全部舍掉,仅保留整数,因此 11/3=3.选项 B,11.0 为实数,3 为整数,因此首先要统一数据类型,将整型数据 3 转换为 3.0,转换后数据类型统一为实型数据,选项 B 变为 11.0/3.0,结果的数据类型也应为实型数据,因此选项 B 11.0/3=3.666666选项 C,先将整数 11 强制类型转换,转换为实型 11.0,因此选项 C 变为 11.0/3,其后计算过程、结果与选项 B 同选项 D,首先计算 11.0/3,其计算过程、结果与选项 B 同,得到 3.666666;再计算3.666666+0.5=4.166666,最后将 4.166666 强制类型转换为整型,即将其小数部分全部舍掉,结果为 45.设整型变量 a=2,则执行下列语句后,浮点型变量 b 的值不为 0.5 的是(B)A.b=1.0/aB.b=(float)(1/a)C.b=1/(float)aD.b=1/(a*1.0)6.若“int n;float f=13.8;”,则执行“n=(int)f%3”后,n 的值是(A)A.1B.4C.4.333333D.4.6“(int)f“表示将 f 中的值强制类型转换为整型,即将 13.8 的小数部分舍掉,转换为 13;然后计算 13%3,结果为 1,再将结果赋给变量 n,因此 n 的值为 17.有如下程序main()int a;char c=10;float f=100.0;double x;a=f/=c*=(x=6.5);printf(%d%d%3.1f%3.1fn,a,c,f,x);程序运行后输出结果是_B_。A、1 65 1 6.5B、1 65 1.5 6.5C、1 65 1.0 6.5D、2 65 1.5 6.58.若变量 a、i 已正确定义,且 i 已正确赋值,合法的语句是_B_。A、a=1B、+i;C、a=a+=5;D、a=int(i);9.若变量已正确定义并赋值,下面符合 C 语言语法的表达式是_B_。A、a:=b+1B、a=b=c+2C、int 18.5%3D、a=a+7=c+b10.设变量 x 为 float 型且已赋值,则以下语句中能将 x 中的数值保留到小数点后两位,并将第三位四舍五入的是_C_。A、x=x*100+0.5/100.0B、x=(x*100+0.5)/100.0C、x=(int)(x*100+0.5)/100.0?D、x=(x/100+0.5)*100.011.若 k 是 int 型变量,且有下面的程序片段k=-3if(k0);D、if(b=0)m=1;n=2;?13.有以下程序main()int a=0,b=0;a=10;/*给 a 赋值*/b=20;/*给 b 赋值*/printf(a+b=%dn,a+b);程序运行后的输出结果是_B_。A、a+b=10B、a+b=30C、30D、出错14.当 c 的值不为 0 时,在下列选项中能正确将 c 的值赋给变量 a、b 的是_C_。A、c=b=a;B、(a=c)(b=c);C、(a=c)&(b=c);D、a=c=b;15.以下选项中非法的表达式是_D_。A、0=x100B、i=j=0C、(char)(65+3)D、x+1=x+116.以下程序的输出结果是_B_。#include 7main()int a,b,d=241;a=d/100%9;b=(-1)&(-1);printf(%d,%dn,a,b);?A、6,1B、2,1C、6,0D、2,017.以下循环体的执行次数是_C_。main()int i,j;for(i=0,j=1;i=j+1;i+=2,j-)printf(%d n,i);A、3B、2C、1D、0答案:C18.有以下定义语句double a,b;int w;long c;若各变量已正确赋值,则下列选项中正确的表达式是_C_。A、a=a+b=b+B、w%(int)a+b)C、(c+w)%(int)aD、w=a=b;19.以下能正确计算定义且赋初值的语句是_B_。A、int n1=n2=10;B、char c=32;C、fioat f=f+1.1;D、double x=12.3E2.520.以下合法的赋值语句是_B_。A、x=y=100B、d-;C、x+y;D、c=int(a+b);21.下列语句中符合 C 语言语法的赋值语句是_D_。A、a=7+b+c=a+7;B、a=7+b+=a+7;C、a=7+b,b+,a+7D、a=7+b,c=a+7;22.请选出合法的 C 语言赋值语句_B_。A、a=b=58B、i+;C、a=58,b=58D、k=int(a+b);23.下面程序的输出是_C_。main()int x=10,y=3;printf(%dn,y=x/y);A、0B、1C、3D、不确定的值24.已知字母 A 的 ASCII 码为十进制的 65,下面程序的输出是_A_。main()char ch1,ch2;ch1=A+5-3;ch2=A+6-3;printf(%d,%cn,ch1,ch2);A、67,DB、B,CC、C,DD、不确定的值25.下列程序的运行结果是_B_。#include main()int a=2,c=5;printf(a=%d,b=%d n,a,c);A、a=%2,b=%5B、a=2,b=5C、a=d,b=dD、a=%d,b=5d26.以下程序的输出结果是_D_。#include main()int a=2,c=5;printf(a=%d,b=%dn,a,c);A、a=%2,b=%5B、a=2,b=5C、a=%d,b=%dD、a=%d,b=%d27.有以下程序main()int x=102,y=012;printf(%2d,%2dn,x,y);执行后输出结果是_C_。A、10,01B、02,12C、102,10D、02,1028.有以下程序main()int a=666,b=888;printf(%dn,a,b);程序运行后的输出结果是_B_。A、错误信息B、666C、888D、666,88829.有以下程序#include main()char c1=1,c2=2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);当运行时输入:a 后,以下叙述正确的是_A_。A、变量 C1 被赋予字符 a,c2 被赋予回车符B、程序将等待用户输入第 2 个字符C、变量 c1 被赋予字符 a,c2 中仍是原有字符 2D、变量 c1 被赋予字符 a,c2 中将无确定值30.执行下列程序时输入:123456789,输出结果是_D_。main()char s100;int c,i;scanf(%c,&c);scanf(%d,&i);scanf(%s,s);printf(%c,%d,%s n,c,i,s);A、123,456,789B、1,456,789C、1,23,456,789D、1,23,45631.有定义语句:int b;char c10;,则正确的输入语句是_B_。A、scanf(%d%s,&b,&c);B、scanf(%d%s,&b,c);C、scanf(%d%s,b,c);D、scanf(%d%s,b,&c);32.若要求从键盘读入含有空格字符的字符串,应使用函数_B_。A、getc()B、gets()C、getchar()D、scanf()33.有以下程序#include main()char c1,c2,c3,c4,c5,c6;scanf(%c%c%c%c,&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf(%c%cn,c5,c6);程序运行后,若从键盘输入(从第 1 列开始)_D_。12345678则输出结果是A、1267B、1256C、1278D、124534.有以下程序main()int m,n,p;scanf(m=%dn=%dp=%d,&m,&n,&p);printf(%d%d%dn,m,n,p);若想从键盘上输入数据,使变量 m 中的值为 123,n 中的数值为 456,p 中的值为 789,则正确的输入是_A_。A、m=123n=456p=789B、m=123 n456 p=789C、m=123,n=456,p=789D、123 456 78935.有以下程序段int m=0,n=0;char c=a;scanf(%d%c%d,&m,&c,&n);printf(%d,%c,%dn,m,c,n);若从键盘上输入:10A10,则输出结果是_A_。A、10,A,10B、10,a,10C、10,a,0D、10,A,036.有定义语句:int x,y;,若要通过 scanf(%d,%d,&x,&y);语句使变量 x 得到数据 11,变量 y得到数值 12,下面四组输入形式中,错误的是_A_。A、11 12B、11,12C、11,12D、11,1237.若有以下定义和语句char c1=b,c2=e;printf(%d,%cn,c2-c1,c2-a+A);则输出结果是:_B_。A、2,MB、3,EC、2,ED、输出项与对应的格式控制不一致,输出结果不确定38.已定义 c 为字符型变量,则下列语句中正确的是_C_。A、c=97;B、c=97;C、c=97;D、c=a;39.数字字符 0 的 ASCII 值为 48,若有以下程序_C_。main()char a=1,b=2;printf(%c,b+);printf(%dn,b-a);程序运行后的输出结果是A、3,2B、50,2C、2,2D、2,5040.以下程序的输出结果是_A_。main()char c=z;printf(%c,c-25);A、aB、ZC、z-25D、y41.若变量 a 是 int 类型,并执行了语句:a=A+1.6;,则正确的叙述是_。A、a 的值是字符 CB、a 的值是浮点型C、不允许字符型和浮点型相加D、a 的值是字符A的 ASCII 值加上 142.下列程序执行后的输出结果是_A_。main()int x=f;printf(%c n,A+(x-a+1);A、GB、HC、ID、J43.以下程序的输出结果是_B_。main()int i;for(i=A;iI;i+,i+)printf(%c,i+32);printf(n);A、编译不通过,无输出B、acegC、acegiD、abcdefghi44.有如下程序#include main()printf(%dn,NULL);程序运行后的输出结果是_A_。A、0B、1C、1D、NULL 没定义,出错45.设有说明语句:char a=72;则变量 a_A_。A、包含 1 个字符B、包含 2 个字符C、包含 3 个字符D、说明不合法46.当把以下四个表达式用作 if 语句的控制表达式时,有一个选项含义不同,这个选项是_。A、K%2B、K%2=1C、(K%2)!=0D、!K%2=147.以下叙述中错误的是_C_。A、C 语句必须以分号结束B、复合语句在语法上被看作一条语句C、空语句出现在任何位置都不会影响程序运行D、赋值表达式末尾加分号就构成赋值语句48.若变量 x、y 已正确定义并赋值,以下符合 C 语言语法的表达式是_A_。A、+x,y=x-B、x+1=yC、x=x+10=x+yD、double(x)/1049.以下叙述中正确的是_A_。A、C 程序中注释部分可以出现在程序中任意合适的地方B、花括号“”和“”只能作为函数体的定界符C、构成 C 程序的基本单位是函数,所有函数名都可以由用户命名D、分号是 C 语言之间的分隔符,不是语句的一部分50.假设变量 a,b 均为整型,表达式(a=5,b=2,ab?a+:b+,a+b)的值是()。A 7B 8C 9D 251.设 a 为 int 型变量,执行下列赋值语句后,a 的取值分别是()。a=125.534;a=(int)125.521%4;a=52;A 125,31,1B 125,1,20C 125,31,20D 125.534,2,2052.以下程序的输出结果为()。#define ADD(x)x*xmain()int a=4,b=6,c=7,d=ADD(a+b)*c;printf(d=%d,d);A d=70B d=80C d=140D d=7003.2 读程序读程序读程序写出结果,或者在程序的空白处填入正确代码。1.有如下程序#include stdio.hmain()char c;c=getchar();while(c!=?)putchar(c);c=getchar();如果从键盘输入 abcde?fgh(回车)运行结果为:abcde2.有如下程序#include main()char c;while(c=getchar()!=$)if(A=c&c=Z)putchar(c);else if(a=c&c=z)putchar(c-32);当输入为 ab*AB%cd#CD$时,运行结果为:ABABCDCD3.以下程序的输出结果是_。main()int a=0;a+=(a=8);printf(%dn,a);答案:164.若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量 b 中的值是_。c=(a-=(b-5);c=(a%11)+(b=3);答案:35.以下程序段的输出结果是_。int i=9;printf(%on,i);答案:116.有以下程序#include main()char ch1,ch2;int n1,n2;ch1=getchar();ch2=getchar();n1=ch1-0;n2=n1*10+(ch2-0);printf(%dn,n2);程序运行时输入:12,执行后输出结果是_。答案:127.以下程序运行后的输出结果是_。main()char m;m=B+32;printf(%cn,m);答案:b8.已知字母 A 的 ASCII 码为 65.以下程序运行后的输出结果是_。main()char a,b;a=A+5-3;b=a+6-2;printf(“%d%cn”,a,b);答案:67G9.若有以下程序main()char a;a=H-A+0;printf(%cn,a);执行后输出结果是_。答案:710.以下程序运行后的输出结果是_。main()int a=012,b=0 x12,k=12;char c=102,d=r;printf(“a=%dtb=%dtk=%dn”,a,b,k);printf(“c=%c,d=%c%on”,c,d,a);a=A;c=49;printf(“a=%dtc=%cn”,a,c);11.以下程序运行后的输出结果是_。main()int i=29,j=6,k=2,s;s=i+i/j%k-9;printf(“s=%dn”,s);12.以下程序运行后的输出结果是_。main()char*s2=“I love China!”,*s1=&s2;char*s3,c,*s4=“w”;s3=&c;*s3=H;s2=s2+2;printf(“%st%ct%st%cn”,s2,*s3,s4,*s1);3.3 程序改错程序改错画横线的代码有误,请写出正确的代码1.从键盘输入整数 x 的值,并输出 y 的值.main()floatx,y;scanf(“%d”,&x);y=3.5+x;printf(“y=%d”);正确的:int x;float y;printf(“y=%f”,y);第四章第四章CH4 选择结构程序设计选择结构程序设计4.1 读程序读程序1.有如下代码:#includemain()char ch;ch=getchar();switch(ch)caseA:printf(“%c”,A);caseB:printf(“%c”,B);break;default:printf(“%sn”,”other”);当从键盘输入字母 A 时,运行结果为:AB详见详见 switch 语句语句switch(表达式)(表达式)case常量常量 1:语句:语句 1case常量常量 2:语句:语句 2case常量常量 n:语句:语句 ndefault:语句语句 n+1其中表达式,常量其中表达式,常量 1,常量,常量 n 都为整型或字符型都为整型或字符型case 相当于给出执行程序的入口和起始位置,若找到匹配的常量,则从此处开始往下执行相当于给出执行程序的入口和起始位置,若找到匹配的常量,则从此处开始往下执行程序,不再匹配常量,直至遇到程序,不再匹配常量,直至遇到 break 或或 switch 结束结束本题过程:首先从键盘接收一个字符A并将其放在变量 ch 中。执行 switch 语句。Switch 后面的条件表达式为 ch,因此表达式的值即为字符A.用字符A依次与下面的 case 中的常量匹配。与第 1 个 case 后的常量匹配,则从其后的语句开始往下执行程序(在执行过程中不再进行匹配。)因此先执行 printf(“%c”,A),屏幕上输出 A;再往下继