中国大学mooc《C语言程序设计(湖南工业大学) 》章节测试答案_第1页
中国大学mooc《C语言程序设计(湖南工业大学) 》章节测试答案_第2页
中国大学mooc《C语言程序设计(湖南工业大学) 》章节测试答案_第3页
中国大学mooc《C语言程序设计(湖南工业大学) 》章节测试答案_第4页
中国大学mooc《C语言程序设计(湖南工业大学) 》章节测试答案_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

titleC语言程序设计(湖南工业大学)中国大学mooc答案100分最新版content第1章C语言概述第1章C语言概述测验1、C语言程序的基本单位是()。答案:函数2、下列各选项中,合法的c语言关键字是()。答案:void3、C语言的程序一行写不下时,应该()。答案:用回车符换行4、下列叙述不正确的是()答案:在C程序中,无论是整数还是实数,都能正确无误地表示5、以下选项中正确的整型常量是()。答案:-806、在C程序中,可以作为用户标识符的一组标识符是()。答案:as_b3_224Else7、下列不合法的十六进制数是()答案:oxff8、在c语言中,下列合法的字符常量是()答案:‘\x76’9、以下选项中合法的用户标识符是()答案:_24310、()是构成c语言程序的基本单位答案:函数11、一个C语言程序总是从()开始执行答案:主函数12、以下叙述不正确的是()答案:在C程序中,注释说明只能位于一条语句的后面13、C语言规定:在一个源程序中,main()函数的位置()答案:可以任意14、以下叙述正确的是()答案:C语言本身没有输入输出语句15、在C语言中,数字O29是一个()答案:非法数16、C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符()答案:必须为字母或下划线17、以下说法中正确的是()答案:C语言程序总是从main()函数开始执行18、C语言可执行程序的开始执行点是()答案:程序中的main函数19、一个C程序的执行是从()答案:本程序的main函数开始,到main函数结束20、以下叙述正确的是()答案:C语言本身没有输入输出语句21、以下叙述不正确的是答案:在C程序中,注释说明只能位于一条语句的后面22、以下叙述中错误的是__。答案:C语言编写的每个函数都可以进行独立的编译并执行23、以下叙述中正确的是答案:C程序书写格式自由,一个语句可以写在多行上24、以下叙述中正确的是__。答案:简单C语句必须以分号结束25、以下关于C语言的叙述中正确的是答案:C语言中的注释不可以夹在变量名或关键字的中间26、有以下程序段#include“stdio.h”voidmain(){…while(getchar()!=”);…}以下叙述中正确的是答案:当执行此while语句时,只有按回车键循环才能停止27、若有以下定义和语句chars1[10]=”abcd!”,*s2=”123\”;printf(“%d%d”,strlen(s1),strlen(s2));则输出结果是答案:5528、计算机能直接执行的程序是__。答案:可执行程序29、以下叙述正确的是答案:C语言函数可以嵌套调用,例如:fun(fun(x))30、计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是答案:C语言程序仅可以编译执行31、以下叙述中错误的是答案:在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件32、以下叙述中错误的是答案:C程序在运行过程中所有计算都以十进制方式进行33、下列叙述中错误的是答案:一个C语言程序只能实现一种算法34、下列叙述中正确的是答案:每个C语言程序中都必须要有一个main()函数35、以下叙述中错误的是答案:使用三种基本结构构成的程序只能解决简单问题36、以下叙述中正确的是答案:C语言规定必须用main作为主函数名,程序从此开始执行,在此结束37、以下叙述中错误的是答案:C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令38、以下叙述中错误的是答案:空语句出现在任何位置都不会影响程序运行39、C语言函数返回类型的默认定义类型是void答案:错误40、C语言的书写格式不会影响程序的可读性。答案:错误41、C语言是一种非结构化程序设计语言。答案:错误42、C语言程序在书写上只能是一条语句写一行。答案:错误43、C语言是一种具有某些低级语言特征的高级语言。答案:正确44、C语言程序中可以有多个函数,但只能有一个主函数。答案:正确45、C语言程序实现与其他高级语言一样也要经过编辑、编译连接和运行这样的三步曲。答案:正确46、下划线是标识符中的合法字符。答案:正确47、C语言的应用比较广泛,不仅可用来编写应用软件,而且可用来编写系统软件。答案:正确第2章简单的C程序设计第2章简单的C程序设计测验1、以下说法中正确的是()答案:#define和printf都不是C语句2、以下程序段的输出结果是()inta=1234;printf(“%2d”,a);答案:12343、若有说明语句:inta,b,c,d=&c;则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是()答案:scanf(“%d%d%d”,&a,&b,d);4、以下合法的赋值语句是()答案:d–;5、设正x、y均为整型变量,且x=10y=3,则以下语句的输出结果是()printf(“%d,%d”,x–,–y);答案:10,26、以下程序的输出结果是()#include<stdio.h>voidmain(){inta=3;printf(“%d”,(a+=a-=a*a));}答案:-127、以下程序的输出结果是()#include<stdio.h>voidmain(){charc=’z’;printf(“%c”,c-25);}答案:a8、以下程序的输出结果是()#include<stdio.h>voidmain(){inta=5,b=4,c=6,d;printf(“%d”,d=a>b(a>ca:c):(b));}答案:69、以下程序的输出结果是()#include<stdio.h>voidmain(){inta=4,b=5,c=0,d;d=!a&&!b||!c;printf(“%d”,d);}答案:110、以下程序段的输出结果是()chars[]=”\141\141abc\t”;printf(“%d”,strlen(s));答案:911、下列程序执行后的输出结果是()#include<stdio.h>voidmain(){intx=’f’;printf(“%c“,’A’+(x-‘a’+1));}答案:G12、下列程序执行后的输出结果是()#include<stdio.h>voidmain(){charx=0xFF;printf(“%d“,x–);}答案:-113、语句printf(“a\bre’hi’y\\bou”);的输出结果是()(说明:’\b’是退格符)答案:re’hi’you14、有以下程序#include<stdio.h>voidmain(){inta,b,c=246;a=c/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}输出结果是()答案:2,115、下列选项中,不正确的赋值语句是()答案:k=1=j;16、以下程序的输出结果()#include<stdio.h>voidmain(){inti=010,j=10;printf(“%d,%d”,++i,j–);}答案:9,1017、请选出以下语句的输出结果()printf(“%d”,strlen(“\t\065\xff”))答案:418、请读程序inti=65536;printf(“%d”,i);上面程序的输出结果是()答案:019、已知字符A的ASCII码为十进制的65,下面程序的输出是()#include<stdio.h>voidmain(){charch1,ch2;ch1=’A’+’5′-‘3′;ch2=’A’+’6’-‘3’;printf(“%d,%c”,ch1,ch2);}答案:67,D20、若有定义和语句:chars[10];s=”abcd”;rintf(“%d”,s)则结果是()答案:编译不能通过21、下面程序的输出是()#include<stdio.h>voidmain(){intk=11;printf(“k=%d,k=%o,k=%x”,k,k,k);}答案:k=11,k=13,k=b22、若有以下定义和语句:intu=010,v=0x10,w=10;printf(″%d,%d,%d″,u,v,w);则输出结果是()答案:8,16,1023、以下定义和语句:charcl=’b’,c2=’e’;printf(″%d,%c″,c2-c1,c2-‘a’+’A’);则输出结果是()答案:3,E24、设x为int型变量,则执行以下语句后,x的值为()x=10;x+=x-=x-x;答案:2025、以下程序的输出结果是()#include<stdio.h>voidmain(){inta=12,b=12;printf(“%d%d”,–a,++b);}答案:111326、以下程序的输出结果是()#include<stdio.h>voidmain(){intk=17;printf(“%d,%o,%x“,k,k,k);}答案:17,21,1127、下面程序的输出是()#include<stdio.h>voidmain(){intx=023;printf(“%d”,–x);}答案:1828、以下程序的输出结果是()#include<stdio.h>voidmain(){charstr[12]={‘s’,’t’,’r’,’i’,’n’,’g’};printf(“%d”,strlen(str));}答案:629、下列程序的输出结果是()#include<stdio.h>voidmain(){doubled=3.2;intx,y;x=1.2,y=(x+3.8)/5.0;printf(“%d“,d*y);}答案:030、语句:printf(“%d“,12&&12);的输出结果是()答案:131、以下叙述中正确的是()答案:当输入数据时,必须指明变量地址,例如:scanf(“a=%d”,&a);32、设有intI=10,j=10;则printf(“%d,%d”,++I,j–)的输出是()答案:11,1033、设A=3,B=4,执行printf(“%d,%d”,(A,B),(B,A));”的输出是()答案:4,334、若有定义和语句:chars[10];s=″abcd″;printf(″%s″,s);则结果是()(以下μ代表空格)答案:编译不通过35、以下程序的输出结果是()#include<stdio.h>voidmain(){intk=17;printf(“%d,%o,%x“,k,k,k);}答案:17,21,1136、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是()答案:(a=c)&&(b=c);37、下面哪个是C语言中的正确赋值语句()答案:i++;38、执行下列程序段floatf;inti;scanf(“%3d%4d%f”,&i,&f);输入为12345678765.43,则赋值结果为()答案:i=123,f=8765.4339、执行程序段charstr[20]={‘a’,’b’,’c’,’\o’};intlen=strlen(str);变量len的值为()答案:440、以下程序的输出结果是()#include<stdio.h>voidmain(){inta=12,b=12;printf(“%d%d”,–a,++b);}答案:111341、有以下程序#include<stdio.h>voidmain(){inta,b,c=246;a=c/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}输出结果是()答案:2,142、下面程序的输出是()#include<stdio.h>voidmain(){inta=-1,b=4,k;k=(a++<=0)&&(!(b–<=0));printf(“%d%d%d%”,k,a,b);}答案:10343、下面程序的输出是()#include<stdio.h>voidmain(){charp1[10]=”abc”,p2[]=”ABC”;printf(“%s”,strcat(p1,p2));}答案:abcABC44、已知字母A的ASCⅡ码为十进制的65,下面程序的输出是()#include<stdio.h>voidmain(){charch1,ch2;ch1=’A’+’5′-‘3′;ch2=’A’+’6’-‘3’;printf(“%d,%c”,ch1,ch2);}答案:67,D45、下面程序的输出是()#include<stdio.h>voidmain(){intx=10,y=3;printf(“%d”,y=x/y);}答案:346、若执行下面的程序时从键盘上输入3和4,则输出是()#include<stdio.h>voidmain(){inta,b,s;a=3,b=4;scanf(“%d%d”,&a,&b);s=a+b;printf(“%d”,s–);printf(“%d,–s);}答案:7,547、执行下面程序中输出语句后,a的值是()#include<stdio.h>voidmain(){inta;printf(“%d”,(a=35,a4,a+5));}答案:1548、下列程序执行后的输出结果是()#include<stdio.h>voidmain(){intx=’f’;printf(“%c“,’A’+(x-‘a’+1));}答案:G49、以下程序运行后,输出结果是()#include<stdio.h>voidmain(){chars[]=”abcde”;s+=2;printf(“%ld”,s);}答案:出错50、若有以下定义和语句:chars1[]=″12345″,s2[]=″1234″;printf(″%d″,strlen(strcpy(s1,s2)));则输出结果是()答案:451、以下程序的输出结果是()#include<stdio.h>voidmain(){inta=12,b=12;printf(“%d%d”,–a,++b);}答案:111352、已知字母A的ASCⅡ码为十进制的65,下面程序的输出是()#include<stdio.h>voidmain(){charch1,ch2;ch1=’A’+’5′-‘3′;ch2=’A’+’6’-‘3′;printf(“%c,%c”,ch1,ch2);}答案:C,D53、若执行下面的程序时从键盘上输入3和4,则输出是()#include<stdio.h>voidmain(){inta,b,s;a=3,b=4;scanf(“%d%d”,&a,&b);s=a+b;printf(“%d”,s–);printf(“%d,–s);}答案:7,554、执行下面程序中输出语句后,a的值是()#include<stdio.h>voidmain(){inta;printf(“%d”,(a=35,a4,a+5));}答案:1555、请读程序片段(字符串内没有空格字符):printf(“%d”,strlen(“ATS012\1\”));上面程序片段的输出结果是()答案:956、设有如下定义:intx=10,y=3,z;则语句printf(“%d”,z=(x%y,x/y));的输出结果是()答案:357、以下程序的输出结果是()#include<stdio.h>intmain(){intx=10,y=10;printf(“%d%d”,x–,–y);return0;}答案:10958、以下程序的输出结果是()#include<stdio.h>intmain(){intx=10,y=10;printf(“%d,%d”,x–,–y);return0;}答案:10,959、若X和Y都是int型变量,X=100,Y=200,且有下面的程序片段:printf(“%d”,(X,Y));上面程序片段的输出结果是()答案:20060、请读程序:#include<stdio.h>voidmain(){intA;floatB,C;scanf(“%2d%3f%4f”,&A,&B,&C);printf(“A=%d,B=%f,C=%f”,A,B,C);}若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是()答案:A=98,B=765.000000,C=4321.000000第3章选择结构程序设计第3章关系运算、逻辑运算测验1、能正确表示a和b同时为正或同时为负的表达式是()答案:ab>02、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为()答案:23、逻辑运算符两侧运算对象的数据类型()答案:可以是任何类型的数据4、已知x=43,ch=’A’,y=0;则表达式(x>=y&&ch<‘B’&&!y)的值是()答案:15、设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值是()答案:26、判断char型变量cl是否为小写字母的正确表达式是()答案:(cl>=’a’)&&(cl<=’z’)7、若有条件表达式(exp)a++:b–,则以下表达式中能完全等价于表达式(exp)的是()答案:(exp!=0)8、表示关系X<=Y<=Z的C语言表达式为()答案:(X<=Y)&&(Y<=Z)9、为表示关系x≥y≥z,应使用C语言表达式()答案:(x>=y)&&(y>=z)10、设有如下定义:inta=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:(m=a>b)&&(n=c>d)后,n的值为()答案:211、为表示关系X≥Y≥Z应使用C语言表达式()答案:(X>=Y)&&(Y>=Z)12、设a,b和c都是int型变量,且a=3,b=4,c=5,则下面表达式的值为0的是()答案:!((a<b)&&!c||1)13、为表示关系x≥y≥z,应使用C语言表达式()答案:(x>=y)&&(y>=z)14、设有如下定义:inta=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:(m=a>b)&&(n=c>d)后,n的值为()答案:215、判断字符型变量x是否是大写字母的正确的表达式()答案:(x>=’A’)&&(x<=’Z’)16、C语言的对语句中用作判断的表达式一般为()答案:逻辑表达式和关系表达式17、C语言中的逻辑表达式值为真相当于值()答案:118、在C语言中,逻辑值”真”用()表示答案:非0的数19、能正确表示逻辑关系:”a≥=10或a≤0″的C语言表达式是()答案:a<=0||a>=10第3章选择结构程序设计第3章选择结构测试1、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()答案:a!=02、以下程序输出结果是()#include<stdio.h>voidmain(){intm=5;if(m++>5)printf(“%d”,m);elseprintf(“%d”,m–);}答案:63、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是()#include<stdio.h>voidmain(){intx;scanf(“%d”,&x);if(x++>5)printf(“%d”,x);elseprintf(“%d”,x–-);}答案:7和54、若变量都已经说明,则以下程序段输出为()a=10;b=50;c=30;if(a>b)a=b;b=c;c=a;printf(“a=%db=%dc=%d”,a,b,c);答案:a=10b=30c=105、为避免嵌套的条件分支语句if…else的二义性,C语言规定,C程序中的else总是与()组成配对关系。答案:其上面距它最近的,并且没有其他else与其配对的if相配对6、以下程序的输出结果是()#include<stdio.h>voidmain(){inta=-1,b=1;if((++a<0)&&!(b–<=0))printf(“%d%d”,a,b);elseprintf(“%d%d”,b,a);}答案:107、若执行下面的程序从键盘输入3和4,则输出是()#include<stdio.h>voidmain(){inta,b,s;scanf(“%d%d”,&a,&b);s=a;if(a<b)s=b;s=s*s;printf(“%d”,s);}答案:168、下面的程序是()#include<stdio.h>voidmain(){intx=3,y=0,z=0;if(x==y+z)printf(“*”);elseprintf(“####”);}答案:输出####9、请读程序:#include<stdio.h>voidmain(){floatx,y;scanf(“%f”,&x);if(x<0.0)y=0.0elseif((x<5.0)&&(x!=2.0))y=1.0/(x+2.0);elseif(x<10.0)y=1.0/x;elsey=10.0;printf(“%f”,y);}若运行时从键盘上输入2.0(表示回车),则上面程序的输出结果是()答案:0.50000010、请读程序:#include<stdio.h>voidmain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf(“a=%d,b=%d”,a,b);}上面程序输出结果是()答案:a=2,b=111、执行下面语句后的输出为()inti=-1;if(i<=0)printf(“*”);elseprintf(“%%%%”);答案:***12、在执行以下程序时,为了使输出结果为t=4,则给a和b输入的值应满足的条件是()#include<stdio.h>voidmain(){ints,t,a,b;scanf(“%d,%d”,&a,&b);s=1;t=1;if(a<0)s=s+1;if(a>b)t=s+1;elseif(a==b)t=5;elset=2*s;printf(“t=%d”,t);}答案:a<b<013、若有定义:floatw;inta,b;则合法的switch语句是()答案:switch(b){case1:printf(““);case2:printf(““);}14、判断两个字符串S1和S2相等的正确语句是()答案:if(strcmp(S1,S2)==0)15、下列语句正确的是()答案:if((a=b)>0)temp=a;16、与y=(x>01:x<0-1:0);的功能相同的if语句是()答案:if(x>0)y=1;elseif(x<0)y=-1;elsey=0;17、若有定义:floatw;inta,b;则合法的switch语句是()答案:switch(a+b){case1:printf(““);case2:printf(“*”);default:printf(“”);}18、有如下程序#include<stdio.h>voidmain(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf(“a=%d,b=%d”,a,b);}该程序的输出结果是()答案:a=2,b=119、有如下程序#include<stdio.h>voidmain(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf(“%f”,y);}该程序的输出结果是()答案:0.50000020、有如下程序main(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf(“%d”,c);}该程序的输出结果是()答案:221、若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是()答案:switch(a-b){default:y=a*b;break;case4:x=a+b;break;case10:y=a-b;break;}22、阅读以下程序:#include<stdio.h>voidmain(){intx;scanf(“%d”,&x);if(x–<5)printf(“%d”’x);elseprintf(“%d”’x++);}程序运行后,如果从键盘上输人5,则输出结果是()答案:423、若运行以下程序时,从键盘输入ADescriptor<CR>(<CR>表示回车),则下面程序的运行结果是()#include<stdio.h>voidmain(){charc;intv0=0,v1=0,v2=0;do{switch(c=getchar()){case‘a’:case‘A’:case‘e’:case‘E’:case‘i’:case‘I’:case‘o’:case‘O’:case‘u’:case‘U’:v1+=1;default:v0+=1;v2+=1;}}while(c!=”);printf(“v0=%d,v1=%d,v2=%d”,v0,v1,v2);}答案:v0=12,v1=4,v2=1224、以下不正确的if语句形式是()答案:if(x!=y)scanf(“%d”,&x)elsescanf(“%d”,&y);25、已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是()if(x>y)z=x;x=y;y=z;答案:x=20,y=30,z=3026、请阅读以下程序:#include<stdio.h>voidmain(){inta=5,b=0,c=0;if(a==b+c)printf(““);elseprintf(“$$$”);}运行以上程序()答案:输出$$$27、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是()if(a<b)if(c<d)x=1;elseif(a<c)if(b<d)x=2;elsex=3;elsex=6;elsex=7;答案:228、下列错误的语句是()答案:if(&&);a=m;29、当a=1、b=3、c=5、d=5时,执行下面的程序段后,x的值为()。if(a<b)if(c<d)x=1;elseif(a<c)if(b<d)x=2;elsex=3;elsex=6;elsex=7;答案:230、以下程序的输出结果是()。#include<stdio.h>voidmain(){inta=-1,b=1,k;if((++a<0)&&!(b–<=0))printf(”%d,%d”,a,b);elseprintf(”%d,%d”,b,a);}答案:1,031、下列关于switch语句和break语句的结论中,正确的是()答案:break的作用是跳出switch语句,接着执行后面的语句32、以下说法正确的是()答案:在switch语句中可以根据需要使用或不使用break语句33、以下程序的运行结果是()。#include<stdio.h>main(){intk=2;switch(k){case1:printf(”%d”,k++);break;case2:printf(”%d”,k++);case3:printf(”%d”,k++);break;case4:printf(”%d”,k++);}答案:2334、有如下程序#include<stdio.h>voidmain(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf(“%d”,c);}该程序的输出结果是()答案:235、若运行以下程序时,从键盘输入ADescriptor<CR>(<CR>表示回车),则下面程序的运行结果是()#includemain(){charc;intv0=0,v1=0,v2=0;do{switch(c=getchar()){case‘a’:case‘A’:case‘e’:case‘E’:case‘i’:case‘I’:case‘o’:case‘O’:case‘u’:case‘U’:v1+=1;default:v0+=1;v2+=1;}}while(c!=”);printf(“v0=%d,v1=%d,v2=%d”,v0,v1,v2);}答案:v0=12,v1=4,v2=1236、有以下程序:#include<stdio.h>voidmain(){inta=l,b=2,c=3,d=0;if(a==l&&b++==2)if(b!=2||c–!=3)printf(“%d,%d,%d”,a,b,c);elseprintf(“%d,%d,%d”,a,b,c);elseprintf(“%d,%d,%d”,a,b,c);}程序运行后的输出结果是()答案:l,3,337、设有定义:inta=1,b=2,c=3;,以下语句中执行效果与其他三个不同的是()答案:if(a>b)c=a;a=b;b=c;38、有以下程序段:inta,b,c;a=10;b=50;c=30;if(a>b)a=b,b=c;c=a;printf(“a=%db=%dc=%d”,a,b,c);程序的输出结果是()答案:a=10b=50c=1039、有以下程序:#include<stdio.h>voidmain(){intx=1,y=2,z=3;if(x>y)if(y<z)printf(“%d”,++z);elseprintf(“%d”,++y);printf(“%d”,x++);}程序的运行结果是()答案:140、有以下程序#include<stdio.h>voidmain(){inta=1,b=0;if(!a)b++;elseif(a==0)if(a)b+=2;elseb+=3;printf(“%d”,b);}程序运行后的输出结果是()答案:041、有以下程序#include<stdio.h>voidmain(){intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;elsey+=3;printf(“%d”,y);}程序运行后的输出结果是()答案:042、能正确表示a和b同时为正或同时为负的表达式是()答案:ab>043、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为()答案:244、逻辑运算符两侧运算对象的数据类型()答案:可以是任何类型的数据45、已知x=43,ch=’A’,y=0;则表达式(x>=y&&ch<‘B’&&!y)的值是()答案:146、设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值是()答案:247、判断char型变量cl是否为小写字母的正确表达式是()答案:(cl>=’a’)&&(cl<=’z’)48、若有条件表达式(exp)a++:b–,则以下表达式中能完全等价于表达式(exp)的是()答案:(exp!=0)49、表示关系X<=Y<=Z的C语言表达式为()答案:(X<=Y)&&(Y<=Z)50、为表示关系x≥y≥z,应使用C语言表达式()答案:(x>=y)&&(y>=z)51、设有如下定义:inta=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:(m=a>b)&&(n=c>d)后,n的值为()答案:252、为表示关系X≥Y≥Z应使用C语言表达式()答案:(X>=Y)&&(Y>=Z)53、设a,b和c都是int型变量,且a=3,b=4,c=5,则下面表达式的值为0的是()答案:!((a<b)&&!c||1)54、判断字符型变量x是否是大写字母的正确的表达式()答案:(x>=’A’)&&(x<=’Z’)55、C语言的对语句中用作判断的表达式一般为()答案:逻辑表达式和关系表达式56、C语言中的逻辑表达式值为真相当于值()答案:157、在C语言中,逻辑值”真”用()表示答案:非0的数58、能正确表示逻辑关系:”a≥=10或a≤0″的C语言表达式是()答案:a<=0||a>=1059、在switch语句中,每一个的case常量表达式的值可以相同。答案:错误60、条件表达式不能取代一般if的语句。答案:错误61、break可用于循环体中,不可用于switch语句中。答案:错误62、在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。答案:正确63、条件运算符和:是一对运算符,不能分开单独使用。答案:正确64、if(a=5)是允许的。答案:正确65、逻辑表达式的值只能为1或0。答案:正确66、在switch语句中,多个case可以共用一组执行语句。答案:正确67、case语句后如没有break,顺序向下执行。答案:正确第4章循环结构设计第4章循环结构测验1、若K为整型,以下while循环执行()次K=0;while(K=0)K=K-1;答案:一次也不执行2、当执行以下程序段时{y=1;do{y–;}while(y);printf(“%d”,y);}答案:循环体将执行一次3、以下叙述正确的是()答案:用do-while语句构成的循环,在while后的表达式为零时结束循环。4、当执行以下程序段时x=-1;do{x=x*x;}while(!x);答案:循环体将执行一次5、若a,b均为int型变量,且a=20,则以下关于for循环语句的正确判断为____。for(b=20;a!=b;++a,b++)printf(“—-“);答案:循环体一次也不执行6、如果输入为:ABCdef执行下面一段程序后,则输出为:voidmain(){charch;while((ch=getchar())!=”){if(ch>=’A’&&ch<=’Z’)ch=ch+32;elseif(ch>=’a’&&ch<‘z’)ch=ch-32;printf(“%c”,ch);}printf(“”);}答案:abcDEF7、执行以下程序后,输出的结果是voidmain(){inty=10;do{y–;}while(–y);printf(“%d”,y);}答案:08、在下列选项中,构成死循环的程序段是答案:for(;;);9、以下程序的输出结果是main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i(i+1)];for(i=0;i<3;i++)k=k+p[i]2;printf(“%d”,k);}答案:2110、有以下程序,其输出结果是main(){intx,i;for(i=1;i<=50;i++){x=i;if(x%2==0)if(x%3==0)if(x%7==0)printf(“%d”,i);}}答案:4211、执行语句:for(i=1;i<4;i++);后,变量i的值是______.答案:412、运行以下程序后,如果从键盘上输入6514<回车>,则输出结果为main(){intm,n;printf(“Enterm,n:”);scanf(“%d%d”,&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf(“m=%d”,m);}答案:113、若i,j已经定义为int类型,则以下程序段中内循环总的执行次数是____for(i=5;i>0;i–)for(j=0;j<4;j++){…}答案:2014、下面程序的输出是____main(){intx=3,y=6,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}printf(“x=%d,y=%d,a=%d”,x,y,a);}答案:x=5,y=4,a=115、定义如下变量:intn=10则下列循环的输出结果是______while(n>7){n–;printf(“%d”,n);}答案:98716、以下程序段的输出结果是_____intx=3;do{printf(“%3d”,x-=2);}while(!(–x));答案:1-217、执行下面的程序后,a的值为_____main(){inta,b;for(a=1,b=1;a<100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}}答案:818、读程序:main(){intnum=0;while(num<=2){num++;printf(“%d”,num);}}上面程序的输出结果是______答案:12319、假定a和b为int型变量,则执行以下语句后b的值为a=1;b=10;do{b=b-a;a++;}while(b>0);答案:020、设i,j为int型变量,则下面for循环语句的执行结果是for(i=10,j=0;j<2;j++){if(i%3)i–;–i;–i;printf(“%d“,i);}答案:7421、假定a和b为int型变量,则执行以下语句后b的值为a=1;b=10;do{b=b-a;a++;}while(b–>0);答案:-422、以下程序的输出结果是main(){inti;for(i=1;i<6;i++){if(i%2){printf(“#”);continue;}printf(““);}printf(“”);}答案:###23、以下程序的输出结果是main(){inti;for(i=’A’;i<‘I’;i++)printf(“%c”,i+32);printf(”“);}答案:abcdefgh24、有以下程序main(){inti,j;for(j=10;j<11;j++){for(i=9;i<j;i++)if(!(j%i))break;if(i=j-1)printf(“%d”,j);}}输出结果是答案:1025、以下程序段的输出结果是intx=3;do{printf(“%3d”,x-=2);}while(!(–x));答案:1,-226、阅读下列程序:main(){intn[3],i,j,k;for(i=0;i〈3;i++)n[i]=0;k=2;for(i=0;i<k;i++)for(j=0;j〈2;j++)n[j]=n[i]+1;printf(“%d”,n[1]);}下述程序运行后输出结果是答案:327、定义如下变量和数组:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是for(i=0;i<3;i++)printf(“%d”,x[i][2-1]);答案:25828、以下循环体的执行次数是main(){inti,j;for(i=0,j=1;i<=j+1;i+=2,j–)printf(“%d“,i);}答案:129、设K为整形,则下面的while循环执行()次k=2;while(k==0){printf(“%d”,k);k–;}printf(“”);答案:0次30、在C语言中,当while语句中的条件表达式的值为()时,结束该循环.答案:031、以下程序的输出结果是{inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<3;j++){if(j%2)continue;x++;}x++;}printf(“x=%d”,x);}答案:x=832、运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为main(){intv1=0,v2=0;charch;while((ch=getchar())!=’#’){switch(ch){case‘a’:case‘h’:default:v1++;case‘0’:v2++;}}printf(“%d%d”,v1,v2);}答案:5,533、下面程序的输出是main(){inty=9;for(;y>0;y–){if(y%3==0){printf(“%d”,–y);continue;}}}答案:85234、设有程序段intk=10;while(k=0)k=k-1;则下面描述中正确的是__答案:循环体语句一次也不执行35、设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf(“%d”,s);则______答案:运行程序段后输出136、语句while(!E);中的表达式!E等价于_答案:E==037、下面程序段的运行结果是___a=1;b=2;c=2;while(a<b<c){t=a;a=b;b=t;c–;}printf(“%d,%d,%d”,a,b,c);答案:1,2,038、下面程序段的运行结果是x=y=0;while(x<15)y++,x+=++y;printf(“%d,%d”,y,x);答案:8,2039、以下程序的输出结果是intmain(void){intx=10,y=10,i;for(i=0;x>8;y=++i)printf(“%d,%d“,x–,y);return0;}答案:10109140、以下程序运行后,输出结果是main(){inty=18,i=0,j,a[8];do{a[i]=y%2;i++;y=y/2;}while(y>=1);for(j=i-1;j>0;j–)printf(“%d”,a[j]);printf(“”);}答案:100141、执行下面的程序后,a的值为main(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b-=2;continue;}b+=5;}}答案:1542、以下程序段的输出结果是intx=3;do{printf(“%3d”,x-=2);}while(!(–x));答案:1,-243、若X是int型变量,且有下面的程序片段:for(X=3;X<6;X++)printf((X%2)(“%d”):(“##%d”),X);上面程序片段的输出结果是答案:3##4544、请读程序:#include”stdio.h”main(){floatx,y,z;scanf(“%f%f”,&x,&y);z=x/y;while(1){if(fabs(z)>1.0){x=y;y=z;z=x/y;}elsebreak;}printf(“%f”,y);}若运行时从键盘上输入3.62.4(表示回车),则输出结果是答案:1.60000045、请读程序:#include“stdio.h”main(){intnum=0;while(num<=2){num++;printf(“%d”,num);}}上面程序的输出结果是答案:12346、以下程序的输出结果是main(){intn=4;while(n–)printf(“%d“,–n);}答案:2047、下面程序的运行结果是main(){charch[7]={“65ab21”};inti,s=0;for(i=0;ch[i]>=‘0’&&ch[i]<‘9’;i+=2)s=10*s+ch[i]-‘0’printf(“%d”,s);}答案:648、以下程序的输出结果是main(){inti;for(i=’A’;i<‘I’;i++,i++)printf(“%c”,i+32);printf(”“);}答案:aceg49、有以下程序main(){inti,j;for(j=10;j<11;j++){for(i=9;i<j;i++)if(!(j%i))break;if(i=j-1)printf(“%d”,j);}}输出结果是答案:1050、下面程序的输出是()main(){inty=9;for(;y>0;y–){if(y%3==0){printf(“%d”,–y);continue;}}答案:85251、下列程序的输出结果是main(){inti,j,m=0,n=1;for(i=0;i<2;i++)for(j=0;j<2;j++)if(j>=i)m=1;n++;printf(“%d“,n);}答案:252、以下程序的输出结果是#include<stdio.h>#include<string.h>main(){charb1[8]=”abcdefg”,b2[8],*pb=b1+3;while(–pb>=b1)strcpy(b2,pb);printf(“%d”,strlen(b2));}答案:753、以下程序的输出结果是#include<stdio.h>main(){inti=0,a=0;while(i<20){for(;;){if((i%10)==0)break;elsei–;}i+=11;a+=i;}printf(“%d”,a);}答案:3254、以下程序中,while循环的循环次数是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}……}答案:死循环,不能确定次数55、以下程序的输出结果是main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf(“%d”,a);}答案:3156、以下程序的输出结果是main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i(i+1)];for(i=0;i<3;i++)k+=p[i]2;printf(“%d”,k);}答案:2157、有以下程序段intk=0;while(k=1)k++;while循环执行的次数是答案:无限次58、以下程序执行后sum的值是main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf(“%d”,sum);}答案:不确定59、有如下程序main(){inti,sum;for(i=1;i<=3;sum++)sum+=i;printf(“%d”,sum);}该程序的执行结果是答案:死循环60、有如下程序main(){intx=23;do{printf(“%d”,x–);}while(!x);}该程序的执行结果是答案:23第5章函数第5章函数测验1、以下程序运行后,输出结果是intd=1;fun(intp){intd=5;d=d+p++;printf(“%d”,d);}voidmain(){inta=3;fun(a);d=d+a++;printf(“%d”,d);}答案:842、以下程序的输出结果是intd=1;fun(intp){d=d+p;printf(“%d“,d);return(d);}main(){inta=3;printf(“%d“,fun(a+fun(d)));}答案:2773、求下列程序的运行结果:#include“stdio.h”intabc(intu,intv);voidmain(){inta=24,b=16,c;c=abc(a,b);printf(‘%d”,c);}intabc(intu,intv){intw;while(v){w=u%v;u=v;v=w}returnu;}答案:84、下列程序执行后输出的结果是#include〈stdio.h〉f(inta){intb=0;intc=3;a=c++,b++;return(a);}main(){inta=2,i,k;for(i=0;i〈2;i++)k=f(a++);printf(“%d”,k);}答案:35、下列程序执行后输出的结果是#include〈stdio.h〉fun3(intx){staticinta=3;a+=x;return(a);}voidmain(){intk=2,m=1,n;n=fun3(k);n=fun3(m);printf(“%d”,n);}答案:66、有以下程序viodfun(inta,intb,intc){a=456;b=567;c=678;}main(){intx=10,y=20,z=30;fun(x,y,z);printf(“%d,%d,%d”,x,y,z);}输出结果是答案:10,20,307、在一个C源程序文件中,若要定义一个只允许本源文件中所用的函数的全局变量,则变量需要使用的存储类别是____答案:static8、以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为#include”stdio.h”#include”string.h”func(charstr1[]){intnum=0,i=0;while((str1[i])!=’\0′){num++,i++;}return(num);}main(){charstr[10];gets(str);printf(“%d”,func(str));}答案:59、以下程序运行后,输出结果是func(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}main(){intk=4,m=1,p;p=func(k,m);printf(“%d”,p);p=func(k,m);printf(“%d”,p);}答案:8,1710、请读程序:#include“stdio.h”FUNC(intA,intB){intC;C=A+B;returnC;}main(){intX=6,Y=7,Z=8,R;R=FUNC((X,Y,X+Y),Z–);printf(“%d”,R);}上面程序的输出结果是答案:2111、请读程序:#include”stdio.h”voidFUN(intS[]){staticintJ=0;do{S[J]+=S[J+1];}while(++J<2);}main(){intK,A[10]={1,2,3,4,5};for(K=1;K<3;K++)FUN(A);for(K=0;K<5;K++)printf(“%d”,A[K]);}上面程序输出结果是答案:3574512、请读程序:f(intb[],intn){inti,r;r=1;for(i=0;i<=n;i++)r=r*b[i];returnr;}main(){intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf(“%d”,x);}上面程序输出结果是答案:12013、下面程序的输出是fun3(intx){staticinta=3;a+=x;return(a);}main(){intk=2,m=1,n;n=fun3(k);n=fun3(m);printf(“%d”,n);}答案:614、下面程序的输出是intm=13;intfun2(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf(“%d”,fun2(a,b)/m);}答案:215、下列程序执行后输出的结果是#include〈stdio.h〉f(inta){intb=0;intc=3;a=c++,b++;return(a);}main(){inta=2,i,k;for(i=0;i〈2;i++)k=f(a++);printf(“%d”,k);}答案:316、下列程序执行后的输出结果是voidfunc1(inti);voidfunc2(inti);charst[]=”hello,friend!”;voidfunc1(inti){printf(“%c”,st[i]);if(i<3){i+=2;func2(i);}}voidfunc2(inti){printf(“%c”,st[i]);if(i<3){i+=2;func1(i);}}main(){inti=0;func1(i);}答案:hlo17、下面程序的输出是intm=13;intfun2(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf(“%d”,fun2(a,b)/m);}答案:218、有以下程序#include“stdio.h”intabc(intu,intv);main(){inta=24,b=16,c;c=abc(a,b);printf(“%d”,c);}intabc(intu,intv){intw;while(v){w=u%v;u=v;v=w;}returnu;}答案:819、下列程序执行后输出的结果是intd=1;fun(intq){intd=5;d+=q++;printf(“%d”,d);}main(){inta=3;fun(a);d+=a++;printf(“%d”,d);}答案:8420、以下叙述中不正确的是()答案:在一个函数内的复合语句中定义的变量在本函数范围内有效21、C语言中,若函数定义时未说明类型,则隐含类型为()答案:int22、C程序中,若函数调用采用传值方式,则()答案:实参和虚参各自占有存储单元23、返回值为void的函数,其含义是____.答案:调用函数之后,被调用的函数没有返回值24、C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是____.答案:单向值传递25、C语言函数的隐含存储类别是______.答案:auto26、下列说法正确的是__.答案:调用函数时,将为形参分配内存单元27、C语言中函数返回值的类型是由______决定的。答案:定义函数时所指定的返回函数值类型28、C语言程序由函数组成。它的____。答案:主函数可以在其他函数之前,函数内不可以嵌套定义函数29、以下说法中正确的是____。答案:一个函数内部定义的变量,只能在本函数范围内有效30、下列关于存储类型说法正确的是()答案:extern型变量一般用于在程序的多个编译单位间传递数据31、下列结论中只有__是正确的:答案:所有的递归程序均可以采用非递归算法实现32、C语言中____函数的递归调用。答案:允许33、以下正确的函数定义形式是答案:doublefun(intx,inty)34、以下正确的说法是:在C语言中答案:实参和与其对应的形参各占用独立的存储单元35、若调用一个函数,且此函数中没有return语句,则正确的说法是:该函数答案:返回一个不确定的值36、关于建立函数的目的,以下正确的说法是答案:形参可以是常量,变量或表达式37、以下正确的说法是答案:如果函数值的类型与返回值类型不一致,以函数值类型为准38、C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是答案:单向值传递39、以下程序有语法错误,有关错误原因的正确说法是main(){intG=5,k;voidprt_char();…k=prt_char(G);…}答案:函数说明和函数调用语句之间有矛盾40、下面函数调用语句含有实参的个数为func((exp1,exp2),(exp3,exp4,exp5));答案:241、以下错误的描述是:函数调用可以答案:做为一个函数的形参42、以下正确的描述是:在C语言程序中答案:函数的定义不可以嵌套,但函数的调用可以嵌套43、若用数组名作为函数的实参,传递给形参的是答案:数据的首地址44、已有如下数组定义和f函数调用语句,inta[3][4];f(a);则在f函数的说明中,对形参数组array的错误定义方式为答案:f(intarray[3][])45、若使用一维数组名作函数实参,则以下正确的说法是答案:必须在主调函数中说明此数组的大小46、以下函数值的类型是fun(floatx){floaty;y=3*x-4;returny;}答案:int47、设有以下函数:f(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}如果在下面的程序中调用该函数,则输出结果是main(){inta=2,i;for(i=0;i<3;i++)printf(“%d”,f(a));}答案:78948、以下程序的输出结果是inta,b;voidfun(){a=100;b=200;}main(){inta=5,b=7;fun();printf(“%d%d“,a,b);}答案:5749、以下程序的输出结果是intf(){staticinti=0;ints=1;s+=i;i++;returns;}main(){inti,a=0;for(i=0;i<5;i++)a+=f();printf(“%d”,a);}答案:1550、若有以下程序#include”stdio.h”voidf(intn);main(){voidf(intn);f(5);}voidf(intn){printf(“%d”,n);}则以下叙述中不正确的是答案:对于以上程序,编译时系统会提示出错信息:提示对对f函数重复声明51、以下程序的输出结果是f(intb[],intm,intn){inti,s=0;for(i=m;i<n;i=i+2)s=s+b[i];returns;}main(){intx,a[]={1,2,3,4,5,6,7,8,9};x=f(a,3,7);printf(“%d”,x);}答案:1052、以下程序的输出的结果是intx=3;main(){inti;for(i=1;i<x;i++)incre();}incre(){staticintx=1;x*=x+1;printf(”%d”,x);}答案:2653、下列叙述中正确的是答案:C语言所有函数都是外部函数54、以下所列的各函数首部中,正确的是答案:voidplay(inta,intb)55、下列程序段的输出结果是voidfun(intx,inty){printf(“%d%d”,x,y);x=3;y=4;}main(){intx=1,y=2;fun(&y,&x);printf(“%d%d”,x,y);}答案:214356、以下只有在使用时才为该类型变量分配内存的存储类说明是答案:auto和register57、以下程序的输出结果是longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf(“%ld”,fun(3));}答案:158、有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是答案:359、有如下程序intrunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%\d”,r);}该程序的输出的结果是答案:1560、有如下程序longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf(“%d”,fib(3));}该程序的输出结果是答案:461、若有以下调用语句,则正确的fun函数的首部是main(){………..inta[50],n;……………fun(n,&a[9]);…………….}答案:voidfun(in

温馨提示

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

评论

0/150

提交评论