C语言程序设计课后练习辅导全资料.docx
- 文档编号:12213328
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:36
- 大小:26.81KB
C语言程序设计课后练习辅导全资料.docx
《C语言程序设计课后练习辅导全资料.docx》由会员分享,可在线阅读,更多相关《C语言程序设计课后练习辅导全资料.docx(36页珍藏版)》请在冰豆网上搜索。
C语言程序设计课后练习辅导全资料
C语言程序设计课后练习辅导资料
题型
题干
选项
答案
单选题
以下选项中合法的实型常数是()。
A.5E2.0
B.E-3
C..2E1
D.1.3E
C
单选题
已知i、j、k为int型变量,若从键盘输入:
1,2,3,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是()。
A.scanf(“%2d%2d%2d”,&i,&j,&k);
B.scanf(“%d%d%d”,&i,&j,&k);
C.scanf(“%d,%d,%d”,&i,&j,&k);
D.scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
C
单选题
设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是()。
A.6.500000
B.6
C.5.500000
D.6.000000
D
单选题
以下非法的赋值语句是()。
A.n=(i=2,++i);
B.j++;
C.++(i+1);
D.x=j>0;
C
单选题
若有以下程序:
main()
{intk=2,i=2,m;
m=(k+=i*=k);
printf(“%d,%d\n”,m,i);}
执行后的输出结果是()。
A.8,6
B.8,3
C.6,4
D.7,4
C
单选题
以下选项中,与k=n++完全等价的表达式是()。
A.k=n,n=n+1
B.n=n+1,k=n
C.k=++n
D.k+=n+1
A
单选题
已有定义:
intx=3,y=4,z=5;,则表达式!
(x+y)+z-1&&y+z/2的值是()。
A.6
B.0
C.2
D.1
D
单选题
下列关于C语言用户标识符的叙述中正确的是()。
A.用户标识符中可以出现在下划线和中划线(减号)。
B.用户标识符中不可以出现中划线,但可以出现下划线。
C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头。
D.用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头。
B
单选题
已知c是字符型变量,以下不正确的赋值语句是
()。
A.c=”a”
B.c=’a’
C.c=’\141’
D.c=’\x61’+3
A
单选题
C语言中对于嵌套if语句规定else总是与()配对?
A.第一个if
B.其之前最近的if
C.缩进位值相同的if
D.其之前最近的不带else的if语句
D
单选题
下面的for循环最多可执行()次。
for(x=0;y=0;(y!
=99)&&(x<4);x++);
A.4次
B.5次
C.99次
D.0次
A
单选题
C语言中各种基本数据类型的存储空间长度排列为()。
A.char≤long≤int≤float≤double
B.double≤float≤long≤int≤char
C.char≤int≤long≤float≤double
D.float≤int≤long≤char≤double
C
单选题
下列说法中正确的是()。
A.在switch语句中一定要使用break语句
B.在switch语句中不一定要使用break语句
C.break语句是switch语句的一部分
D.break只能用于switch语句中
B
单选题
以下不符合C语言语法的赋值表达式是()。
A.d=9+e,e++,d+9
B.k=i==j
C.n1+=n2+3
D.a=b+c=a+7
D
单选题
下列判断char类型变量C1是为数字的最简单且正确的表达式()。
A.'0'<=C1<='9'
B.(C1>='0')&&(C1<='9')
C.(C1>=0)&&(C1<=9)
D.('0'<=C1)&&('9'<=C1)
B
单选题
字符串”\\\’abcd\123\xAB\t”的长度为()。
A.8
B.17
C.-9
D.10
D
单选题
执行以下程序段后,变量a,b,c的值为()。
intx=11,y=10,a,b,c;
a=(--x==y++)?
--x:
++y;
b=x++;c=y;
A.a=10,b=10,c=9
B.a=9,b=9,c=12
C.a=9,b=9,c=11
D.a=1,b=9,c=11
C
单选题
以下程序的输出结果是用()表示。
main()
{intk=17;
printf("%d,%o,%x\n",k,k,k);
}
A.17,021,0x11
B.17,17,17
C.17,0x11,021
D.17,21,11
D
单选题
若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)
s=a;
for(b=1;b<=c;b++)s=s+1;
则与上述程序段功能等价的赋值语句是()。
A.s=a+b;
B.s=a+c;
C.s=s+c;
D.s=b+c;
B
单选题
有如下程序
voidf(intx,inty)
{intt;
if(x } main() {inta=4,b=3,c=5; f(a,b);f(a,c);f(b,c); printf("%d,%d,%d\n",a,b,c); } 执行后输出结果是()。 A.3,4,5 B.5,3,4 C.5,4,3 D.4,3,5 D 单选题 有以下程序 main() {chars[]="\n123\\"; printf("%d,%d\n",strlen(s),sizeof(s)); } 执行后输出结果是()。 A.赋初值的字符串有错 B.6,7 C.5,6 D.6,6 C 单选题 以下程序的输出结果是()。 main() {charch[3][5]={“AAAA”,”BBB”,”CC”}; printf(“\”%s\”\n”,ch[1]); } A.“AAAA” B.“BBB” C.“BBBCC” D.“CC” B 单选题 以下叙述中正确的是()。 A.局部变量说明为static存储数,其生存期将得到延长 B.全局变量说明为static存储类,其作用域将被扩大 C.任何存储类的变量在未赋初值时,其值都是不确定的 D.形参可以使用的存储类说明符与局部变量完全相同 A 单选题 在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则()。 A.称为函数的直接递归调用 B.称为函数的间接递归调用 C.称为函数的循环调用 D.C语言中不允许这样的递归调用 B 单选题 C语言中数组下标的下限是()。 A.1 B.0 C.视说明语句而定 D.无固定下限 B 单选题 若有定义inta[2][2]={0};,则以下描述正确的是()。 A.只有a[0][0]的值为0 B.数组每个元素的值都为0 C.只有a[0][1]的值为0 D.以上都不正确 B 单选题 下面函数f的定义: f(inta){printf("%d",a);} 函数f的返回类型()。 A.同参数a的类型相同 B.是void类型 C.没有返回值 D.无法确定 A 单选题 以下正确的说法是()。 A.定义函数时,形参的类型说明可以放在函数体 B.return后边的值不能为表达式 C.如果函数值的类型与返回值类型不一致,以函数值类型为准 D.如果形参与实参类型不一致,以实参类型为准 C 单选题 C语言标准库函数“strcat(strcpy(STR1,STR2),STR3)”的功能是()。 A.将串STR1复制到串STR2中后再连接至串STR3之后 B.将串STR1连接至STR2之后再复制至串STR3之后 C.将串STR2复制到串STR1串后再将串STR3连接到串STR1之后 D.将串STR2连接到串STR1之后再将串STR1复制到串STR3串 C 单选题 以下程序的输出结果是()。 #definep(v,format)printf(“v=%format”,v) #defines(x)3.5*x*x main(){inta=1,b=2;floats1;s1=s(a+b);p(s1,f);} A.s1=31.5 B.v=31.500000ormat C.v=7.500000ormat D.s1=7.5 C 单选题 若有说明: intn=2,*p=&n,*q=p;,则以下非法的赋值语句是()。 A.p=q; B.*p=*q; C.n=*q; D.p=n; D 单选题 已定义以下函数 fun(int*p) {return*p: }该函数的返回值是()。 A.不确定的值 B.形参p中存放的值 C.形参p所指存储单元中的值 D.形参p的地址值 C 单选题 有以下程序 main() {char*s[]={"one","two","three"},*p; p=s[1]; printf("%c,%s\n",*(p+1),s[0]); } 执行后输出结果是()。 A.n,two B.t,one C.w,one D.o,two C 单选题 若有定义: int*p[3];,则以下叙述中正确的是()。 A.定义了一个基类型为int的指针变量p,该变量具有三个指针 B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 C.定义了一个名为*p的整型数组,该数组含有三个int类型元素 D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素 B 单选题 已定义以下函数 fun(char*p2,char*p1) {while((*p2=*p1)! =‘\0’){p1++;p2++;}}函数的功能是()。 A.将p1所指字符串复制到p2所指存空间 B.将p1所指字符串的地址赋给指针p2 C.对p1和p2两个指针所指字符串进行比较 D.检查p1和p2两个指针所指字符串中是否有‘\0’ A 单选题 有以下程序段 inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; b中的值是()。 A.5 B.6 C.8 D.9 D 单选题 运行下列程序后的输出结果是()。 main(){charstr[][10]={"China","Beijing"},*p=*str;printf("%s\n",p+10);} A.China B.Beijing C.ng D.ing B 单选题 设有说明: uniondata{ inti;floatf; struct{ intx;chary; }s; doubled; }a;在16位微机环境下,int类型的整数占用两个字节,则变量a在存中所占字节数为()。 A.8 B.17 C.9 D.15 A 单选题 下面对结构数据类型的叙述中,()是错的。 A.结构变量可以在说明结构类型后定义,也可在说明结构时定义 B.结构可由若干个成员组成,各成员的数据类型可以不同 C.定义一个结构类型后,编译程序要为结构的各成员分配存储空间 D.结构变量的各成员可通过结构变量名和指向结构变量的指针引用 C 单选题 在C语言中,文件若按数据的组织形式分类可分为()。 A.字符文件和数字文件 B.ASCII文件和二进制文件 C.顺序文件和随机文件 D.以上均不对 B 单选题 若有以下说明: inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为6的表达式是()。 A.*p+6 B.*(p+6) C.*p+=5 D.p+5 D 单选题 C语言程序由()组成。 A.子程序 B.过程 C.函数 D.主程序与子程序 C 单选题 下列有四个用户定义的C语言标识符,只有一个是正确的,正确的是()。 A.case B.-ac C._53 D.ab-c C 单选题 以下正确的描述是()。 A.continue语句的作用是结束整个循环的执行 B.只能在循环体和switch语句体使用break语句 C.在循环体使用break语句或continue语句的作用相同 D.从多层循环嵌套中退出时,只能使用goto语句 B 单选题 若以下选项中的变量已正确定义,则正确的赋值语句是()。 A.x1=26.8%3 B.1+2=x2 C.x3=0x12 D.x4=1+2=3 C 单选题 若变量都已正确说明,则以下程序段()。 a=2;b=3; printf(a>b? ”***a=%d”: ”###b=%d”,a,b); A.没有正确的输出格式控制 B.输出为: ***a=2 C.输出为: ###b=2 D.输出为: ***a=2###b=2 C 单选题 若变量都已正确说明,则以下程序段输出为()。 a=10;b=50;c=30; if(a>b)a=b; b=c;c=a; printf(“a=%db=%dc=%d\n”,a,b,c); A.a=10b=50c=10 B.a=10b=30c=10 C.a=50b=30c=10 D.a=50b=30c=50 B 单选题 以下程序输出的结果是()。 #include<stdio.h> main() {inti=0,j=0,a=6; if((++i>0)||(++j>0))a++; printf(“i=%d,j=%d,a=%d\n”,i,j,a); } A.i=0,j=0,a=6 B.i=1,j=1,a=7 C.i=1,j=0,a=7 D.i=0,j=1,a=7 C 单选题 以下叙述中正确的是()。 A.在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 B.在C程序中,main()函数必须位于程序的最前面。 C.C语言本身没有输入输出语句。 D.C程序的基本单位是语句。 C 单选题 a的初值为10,执行表达式语句a+=a-=a*a;后,a的值为()。 A.-80 B.-180 C.-90 D.-100 B 单选题 在C语言中,设a和x都为整型变量,执行赋值表达式x=(a=3,6*3)后,x的值为()。 A.54 B.3 C.18 D.21 C 单选题 设x和y均为int型变量,则执行下面的循环后,y值为()。 for(y=1,x=1;y<=50;y++) {if(x>=10)break; if(x%2==1){x+=4;continue;}} A.2 B.4 C.6 D.8 B 单选题 设有如下程序段,其结果是()。 inta=100,b=100; for(;a! =b;++a,b++) printf(“---\n”); A.输出--- B.输出100行--- C.死循环 D.该for循环一次也不执行 D 单选题 整型变量a的取值围为闭区间[-1,10]或开区间(20,40),则正确表示的逻辑表达式为()。 A.–1<=a<=10|20<a<40 B.(–1<=a&&a<=10)|(20<a&&a<40) C.(–1<=a&&a<=10)||(20<a&&a<40) D.–1<=a<=10||20<a<40 C 单选题 若有代数表达式(5ae)/(bc),则不正确的C语言表达式()。 A.a/b/c*e*5 B.5*a*e/b/c C.5*a*e/b*c D.a*e/c/b*5 C 单选题 以下不符合C语言语法的赋值表达式是()。 A.d=9+e,e++,d+9 B.k=i==j C.n1+=n2+3 D.a=b+c=a+7 D 单选题 若int类型占两个字节,则以下语句输出为()。 intk=-1; printf("%d,u%\n",k,k); A.-1,-1 B.-1,65536 C.-1,32768 D.-1,65535 D 单选题 假设a为float类型数,i为整型变量,则下述语句能将a中的数值保留小数点1位,即四舍五入的是()。 A.a=(a*10+0.5)/100.0 B.i=a*10+0.5,a=i/10.0 C.a=int(a*10)/10.0 D.a=(a/100+0.5)*100.0 B 单选题 设x=3,y=-4,z=6,下面表达式的结果是()。 ! (x>y)+(y! =z)||(x+y)&&(y-z) A.0 B.1 C.-1 D.6 B 单选题 在C语言中,逻辑值“真”用()表示? A.true B.正数 C.非0整数 D.非0的数 D 单选题 已知ch是字符型变量,下面正确的赋值语句是()。 A.ch=‘123’; B.ch=‘\xff’; C.ch=‘\08’ D.ch=“\” B 单选题 若有以下说明和语句,则输出结果是()。 charsp[]="\x69\082\n"; printf("%d",strlen(sp)); A.3 B.5 C.1 D.字符串中有非法字符,输出值不定 B 单选题 若有变量说明: chars,s1[20];执行语句: s="student";s1=s;正确的叙述是()。 A.二个语句都不正确 B.s所指向的字符串和s1的值都是"student" C.第一个语句正确,而第二个语句不正确 D.第二个语句正确,而第一个语句不正确 A 单选题 变量的有效围与其定义位置有关,(),其作用域在整个源程序文件中都有效。 A.在第一个函数中定义的变量 B.在定义第一个函数之前所定义的变量 C.在主函数中定义的变量 D.在函数中定义的静态变量 B 单选题 若程序中定义了以下函数 doublemyadd(doublea,doubleB) {return(a+B);} 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()。 A.doublemyadd(doublea,B); B.doublemyadd(double,double); C.doublemyadd(doubleb,doubleA); D.doublemyadd(doublex,doubley); A 单选题 有以下程序 voidf(intv,intw) {intt; t=v;v=w;w=t; } main() {intx=1,y=3,z=2; if(x>y)f(x,y); elseif(y>z)f(y,z); elsef(x,z); printf(“%d,%d,%d\n”,x,y,z); } 执行后输出结果是()。 A.1,2,3 B.3,1,2 C.1,3,2 D.2,3,1 C 单选题 若有宏定义与变量说明如下: #defineX5 #defineYX+1 #defineZY*X/2 inta;a=Y; 则执行以下printf语句后输出的结果是()。 Printf("%d%d\n",Z,--a); A.75 B.126 C.125 D.76 A 单选题 数组名作为参数传递给函数,此时作为实在参数的数组名被处理为()。 A.该数组的长度 B.该数组的元素个数 C.该数组中各元素的值 D.该数组的首地址 D 单选题 执行完下面的程序段后,屏幕显示的容为()。 main() {inta=2,i; for(i=0;i<3;i++)printf("%d",f(a)); } f(inta) {intb=0; staticintc=3; b++; c++; return(a+b+c); } A.777 B.777 C.789 D.789 C 单选题 以下描述中,正确的是()。 A.调用函数时,实参可以是表达式 B.调用函数时,将为形参分配存单元 C.调用函数时,实参与形参的原型必须一致 D.调用函数时,实参与形参可以用存单元 A 单选题 在C语言中,引用数组元素时,其下标的数据类型允许是()。 A.整型常量 B.整型表达式 C.整型常量或整型表达式 D.任何类型的表达式 C 单选题 有语句charstr1[10],str2[10]={"books"};则能将字符串books赋给数组str1的正确语句是()。 A.str1={"Books"}; B.strcpy(str1,str2); C.str1=str2; D.strcpy(str2,str1); B 单选题 以下函数调用中有()个实参。 expd((a1,a2,a3),(a4,a5),a7,a8) A.4个 B.3个 C.8个 D.5个 A 单选题 C语言的编译系统对宏命令是()时候处理的。 A.在程序运行 B.在程序连接时 C.和源程序其它C语言同时进行编译时 D.对源程序其它成份正式编译之前进行处理的 D 单选题 设有定义: inta,*pA=&a;以下scanf语句中能正确为变量a读入数据的是()。 A.scanf(“%d”,pA); B.scanf(“%d”,A); C.scanf(“%d”,&pA); D.scanf(“%d”,*pA); A 单选题 若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是()。 A.a,point,*&a B.&*a,&a,*point C.*&point,*point,&a D.&a,&*point,piont D 单选题 有以下程序 main() {char*p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”}; printf(“%d\n”,strlen(p[4])); } 执行后输出结果是()。 A.2 B.3 C.4 D.5 A 单选题 C语言结构体类型变量在程序执行期间()。 A.所有成员一直驻留在存中 B.只有一个成员驻留在存中 C.部分成员驻留在存中 D.没有成员驻留在存中 A 单选题 以下对C语言中共用体类型数据的叙述()的叙述是正确的。 A.可以对共
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课后 练习 辅导 资料