c语言复习题.docx
- 文档编号:4085627
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:37
- 大小:26.48KB
c语言复习题.docx
《c语言复习题.docx》由会员分享,可在线阅读,更多相关《c语言复习题.docx(37页珍藏版)》请在冰豆网上搜索。
c语言复习题
一、填空:
1.整型数据变量声明中所使用的关键字是int。
2.设floatx=2.5,y=4.7;inta=7;,表达式x+a%3*(int)(x+y)%2/4的值为2.5。
3.printf(“Myageis%d.”,age);函数中,使用%d表示输出的是整型类型的数
据。
4.每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。
5.设intx=5,y,z;执行y=z=x;x=y==z;后,变量x的结果是1。
6.C语言中,数组在内存中占一片的存储区,由代表它的首地址。
数
组名是一个,不能对它进行赋值运算。
7.函数的参数为char*类型时,形参与实参结合的传递方式为。
8.C程序编译、连接后生成程序。
9.当a=10,b=4,c=2时,表达式f=a>b>c的值是。
10.字符串数组与字符数组的在长度至少一个元素。
11.若函数的形式参数是指针类型,则实参可以是或。
12.如定义语句为chara[]="windows",b[]="7";,语句printf("%s",strcat(a,b));的输出结果
为。
13.请在下面的程序段中填写正确的格式说明符:
intmain(void)
{floatsalary;
printf(“Enteryourdesiredmonthlysalary:
.”,salary);
}
14.C程序编译后生成程序。
15.C语言的标识符只能由、数字和三种字符组成。
16.设有定义inty;,分别写出描述“y是偶数”的表达式,“y是奇
数”的表达式。
17.C语言没有字义专门的字符串变量类型,而是把它存储在数组中。
18.字符串常量"\\\22a,0\n\""的长度是。
19.字符串存储到数组中时,在数组的最后将增加一个标记字符串结束的字
符。
20.设有定义语句staticinta[3][4]={{1},{2},{3}};则a[1][0]值为,a[1][1]值
为,a[2][1]的值为。
21.假设inta=7;执行语句a+=a-=a*a;后,a的值是。
22.若自定义函数要求返回一个值,则应在该函数体中有一条语句,若自定义
函数要求不返回一个值,则应在该函数说明时加一个类型说明符
23.若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)
后x的值为。
24.设intx=10,y,z;执行y=z=x;x=y==z;后,变量x的结果是。
25.求解赋值表达式a=(b=10)%(c=6),则“表达式值、a、b、c”的值依次为,,,。
26.求解逗号表达式(x=a=3,6*a)后,“表达式值、x、a”的值依次为,,。
27.变量的指针是指该变量的。
28.C语言中,逻辑值“假”用表示,逻辑“真”用1表示。
29.若有定义:
inta[]={1,3,5,7,9,11,13},*p=a;则*(p+2)的值是,为什
么。
30.判断变量a、b的值均不为0的逻辑表达式为。
31.C语言的变量名可以使用的字符包括大写字母、小写字母、和下划线,而且必
须以和开头。
32.若有定义:
chara[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’},*p=a;则*(p+2)的值
是。
33.C语言中,数组的各元素必须具有相同的,元素的下标下限为,下标必
须是正整数、0、或者。
34.在C语言中,在内存中存放二维数组元素的顺序是。
35.假设在一维数组a[20]中,元素a[4]的指针为p,那么p+4所指向的数据元素
是。
36.下面程序块执行完成后,m的值是。
m=1;n=263;
do{
m*=n%10;
n/=10;
}
while(n);
37.标准C语言程序总是从开始执行的。
38.执行语句for(i=1;i++<4;);后,变量i的值是,如果语句for(i=1;++i<4;);
则执行后,变量i的值是。
39.设intx=1,y=3;执行x=9-(y--)-(--y);后,变量x的结果是,执行
x=9-(--y)-(--y);后,变量x的结果是。
40.已知有如下定义:
charstr1[10]="abcde",str2[10]="xyz";,则执行下列语句,
输出结果为。
printf("%d",strlen(strcpy(str1,str2)));
41.定义inta=10;,其中变量a在内存中的地址为2000,如果再定义指针变量int*p;,
并使p指向变量a,则对指针变量p的赋值语句是。
42.若有chara[3]=“as”;则*a=,*(a+2)=。
43.函数的形式参数的作用域为,全局的外部变量和函数体内定义的局部变量
重名时,_________变量优先。
44.函数调用中,函数中的形参和调用时的实参都是数组名时,传递方式为,都
是变量时,传递方式为,两种方式中,方式可以实现在函数中修改实参变量的原值。
45.己知j=5,a=10,下列语句j=(a=j+2,a+3,a-5);执行后整型变量j和a的值分别
是和。
46.数组名表示。
47.字符串“ab\n\\012\\\””的长度是。
48.下面程序段中循环体的执行次数是。
inta=8,b=0;
do{
b+=1;
a-=1+b;
}
while(a>=0);
49.已知:
inta[2][3]={{1,3},{8}},则a[1][1]的值为。
50.字符串常量“\\22a,0\n\””的长度是。
51.如果一个函数没有返回值,那么该函数的类型为。
52.C语言表达式5>2>7>8的值是。
53.若有定义:
charch;
(1)定义指针p,并指向变量ch的语句是。
(2)若已定义char*p;,使指针p指向变量ch的赋值语句是;。
(3)在
(1)的基础上,通过指针p实现变量ch读入字符的scanf调用语句是。
(4)在
(1)的基础上,通过指针p给变量ch赋字符’a’的语句是。
(5)在
(1)的基础上,通过指针p用格式输出函数printf输出ch中字符的语句是。
54.输入一个字符,判断该字符是数字、字母、空格还是其他字符。
main()
{charch;
ch=getchar();
if()
printf("ItisanEnglishcharacter\n");
elseif()
printf("Itisadigitcharacter\n");
elseif()
printf("Itisaspacecharacter\n");
printf("Itisothercharacter\n");}
55.search函数的功能是从数组a[10]中对关键字m进行查找,请填空完成程序,实现功能。
#include
intsearch(inta[10],intm)
{
inti;
for(i=0;i<=m;i++)
if()
returni;
return-1;
}
voidmain()
{inta[10],m,i,n;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
scanf("%d",&m);
n=search();
if()
printf("OK,found!
%d",n+1);
else
printf("sorry,nofound!
");
}
56.下列程序的功能是从输入的整数中,统计大于零的整数个数和小于零的整数个数。
用输
入0来结束输入,用i,j来放统计数,请填空完成程序。
voidmain()
{n,i=0,j=0;
printf(“inputainteger,0forend\n”);
scanf(“%d”,&n);
while()
{
if(n>0)i=;
elsej=j+1;
}
printf(“i=%4d,j=%4d\n”,i,j);
}
57.编程计算1+3+5…+99的值
main()
{inti,sum=0;
i=1;
while()
{sum=sum+i;
;}
printf("sum=%d\n",sum);
}
58.有一个一维数组存放10个学生的成绩,用一个函数求平均分、最高分和最低分
#include
;
voidmain()
{
floataverage(floatarray[],intn);
floatave,score[10];
inti;
printf("pleaseenter10scores:
");
for(i=0;i<10;i++)
scanf();
ave=average(score,10);
printf("max=%6.2f\n",Max);
printf("min=%6.2f\n",Min);
printf("average=%6.2f\n",ave);
}
floataverage(floatarray[],intn)
{inti;
floataver,sum=array[0];
;
for(i=1;i {if(array[i]>Max) Max=array[i]; else if(array[i] Min=array[i]; sum=sum+array[i]; } aver=sum/n; return(aver); } 59.下面程序的功能是在a数组中查找与x值相同的元素所在位置,请填空 #include voidmain() {inta[10],i,x; printf(“input10integers: ”); for(i=0;i<10;i++) scanf(“%d”,&a[i]); printf(“inputthenumberyouwanttofindx: ”); scanf(“%d”,); for(i=0;i<10;i++) if() break; if() printf(“theposofxis: %d\n”,i); elseprintf(“cannotfindx! \n”); } 60.求一个3*4矩阵中,元素最大值及所在的行号、列号。 请填空完成程序,实现功能 #include intmain() {inti,j,row=0,colum=0,max; inta[3][4]; for(i=0;i<=2;i++) for(j=0;j<=3;j++) scanf(); ; for(i=0;i<=2;i++) for(j=0;j<=3;j++) if() { max=a[i][j]; row=i; colum=j; } printf("max=%d\n",max); printf("row=%d\n",row); printf("colum=%d\n",colum); return0; } 61.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。 #defineN10 charstr[N]; sort(charstr[N]); voidmain() { inti,flag; for(i=0;i<10;i++) scanf("%c",&str[i]); sort(___); for(i=0;i printf("%c",str[i]); printf("\n"); } voidsort(charstr[N]) { inti,j; chart; for(j=1;j for(i=0;i if(str[i]> (2)) {t=str[i]; ____________; ____________; } } 62.下面程序的功能是比较字符数组a和字符数组b中的两个字符串是否相等(比较对应 字符,全部相同输出0,如果不同,返回第一个不相同的字符差值,并输出)。 #include intmain(void) { chara[100]="HelloWorld! "; charb[100]="HelloChengdu! "; ; /*完成对应字符的比较,并判定一个字符串是否结束了*/ while() { i++; } printf("%d\n",a[i]-b[i]); return0; 63.程序填空: 编程计算1+3+5+……+101的值。 #include intmain(void) { inti,sum=0; for(i=1;;) sum=sum+i; printf("sum=%d\n",sum); return0; } 64.编写程序,输入一个数字字符(‘0’—‘9’)存入变量c,把c转换成它所对应的 整数存入n,如: 字符‘0’所对应的整数就是0。 请填空。 #include voidmain() {charc; intn; printf(“pleaseinputachar: \n”); c=; n=; printf(“%c%d”,c,n); } 65.下面的程序是输出数组中最大元素的下标(p表示最大元素的下标)。 #include voidmain() {; ints[]={1,-3,0,-9,8,5,-20,3}; for(i=0,p=0;i<8;i++) if(s[i]>s[p]); ; } 66.以下程序的功能是: 从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩, 当输入负数时结束输入.请填空. #include intmain(intargc,char*argv[]) { floatx,amax,amin; scanf("%f",&x); amax=x;amin=x; while() { if(x>amax) amax=x; if() amin=x; scanf("%f",&x); } printf("\namax=%f\namin=%f\n",amax,amin); return0; } 二、选择 1.若有说明语句“inta[5],*p=a;”,则对数组元素的正确引用是。 A.a[p] B.p[a] C.*(p+2) D.p+2 2.在C语言中,以作为字符串结束标志 A.’\n’ B.’’ C.’0’ D.’\0’ 3.下列数据中属于“字符串常量”的是(A)。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 4.对二维数组的正确定义是 A.inta[][]={1,2,3,4,5,6}; B.inta[2][]={1,2,3,4,5,6}; C.inta[][3]={1,2,3,4,5,6}; D.inta[2,3]={1,2,3,4,5,6}; 5.若变量已正确定义并赋值,下面符合C语言语法的表达式是()。 A、a: =b+1 B、a=b=c+2 C、int18.5%3 D、a=a+7=c+b 6.C程序的基本结构单位是: A、文件 B、语句 C、函数 D、表达式 7.下面程序段中循环体的执行次数是: inta=10,b=0; do{ b+=2;a-=2+b; }while(a>=0); A、1 B、2 C、3 D、4 8.以下可用作C语言用户合法的标识符的是: A、B.C.Tom B、3a6b C、_6a7b D、$ABC 9.已有定义: intx=3,y=4,z=5;,则表达式! (x+y)+z-1&&y+z/2的值是: A、6 B、0 C、2 D、1 10.若有以下程序段intc1=1,c2=2,c3;c3=1.0/c2*c1;,则执行后,c3中的值是()。 A、0 B、0.5 C、1 D、2 11.设整型变量a=2,则执行下列语句后,浮点型变量b的值不是0.5的是()。 A、b=1.0/a B、b=(float)(1/a) C、b=1/(float)a D、b=1/(a*1.0) 12.已知charx[]="hello",y[]={'h','e','a','b','e'};,则关于两个数组长度的正确描述是()。 A、相同 B、x大于y C、x小于y D、以上答案都不对 13.以下选项中,不能作为合法常量的是()。 A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e0 14.C语言中运算对象必须是整型的运算符是()。 A、%= B、/ C、= D、<= 15.以下能够正确定义函数首部的形式是。 A、doublefun(intx,inty) B、doublefun(intx;inty) C、doublefun(intx,inty); D、doublefun(intx,y); 16.语句a=25.0+60.0*n/scale+2;,如果n=6.0,scale=2.0,则该语句最后的运行结果a值 是()。 A、257 B、194.5 C、207.0 D、96.25 17.下列关键字,哪个是双精度数据类型的关键字()。 A、int B、float C、double D、char 18.若有说明: inta[][3]={{1,2,3},{4,5},{6,7}};则数组a的第一维的大小为: A.2 B.3 C.4 D.无确定值D)9 19.下列哪个是命名正确的变量名()。 A、7num B、student C、#No D、float 20.C语言中规定函数的返回值的类型是由: A、return语句中的表达式类型所决定 B、调用该函数时的主调用函数类型所决定 C、调用该函数时系统临时决定 D、在定义该函数时所指定函数类型决定 21.为了避免在嵌套的条件语句if-else中产生二义性,C语言规定: else子句总是与其 配对的是: A、其之后最近的if B、其之前最近的if C、缩排位置相同的if D、同一行上的if 22.若有语句int*p,a=4;p=&a,下面均代表地址的一组选项是: A、a,p,*&a B、&*a,&a,*p C、*&p,*p,&a D、&a,&*p,p 23.下列关于C语言的说法错误的是()。 A、C程序的工作过程包括编辑、编译、链接、运行 B、C语言不区分大小写 C、C程序中使用数组存储字符串,数组的单元数至少应该比要存储的字符数多1 D、C程序中必须有一个main()函数 24.在C语言程序中,表达式5%2的结果是()。 A、2.5 B、2 C、1 D、3 25.下列说法错误的是。 A、在C语言中,break语句用于提前终止循环 B、在C语言中,continue语句只能用于switch语句和循环语句中 C、在C语言中,continue语句用于提前结束本次循环 D、在C语言中,break语句只能用于switch语句和循环语句中 26.已知: inta=2,b=3;,则执行表达式c=b*=a-1后,变量c的值为: A、5 B、3 C、2 D、4 27.在C语言中,以()作为字符串结束标志。 A、\n B、\s C、\a D、\0 28.在C语言中对一维整型数组的正确定义为。 A)inta(10);B)intn=10,a[n]; C)intn;a[n];D)#defineN10 inta[N]; 29.下面()表达式的运算结果是4。 A、11/3 B、11.0/3 C、(float)11/3 D、(int)(11.0/3+0.5) 30.下列数据中属于“字符串常量”的是() A、“a” B、23 C、‘abc\0’ D、‘a’ 31.语句while(! E);中的表达式! E等价于: A、E==0 B、E! =1 C、E! =0 D、E==1 32.下面程序的运行情况是: chara[3],b[]="abcde"; a=b; printf("%s",a); A、运行后将输出abcde B、运行后将输出ab C、运行后将输出abc D、编译时出错 33.假设a=1;b=2;c=2;下面程序段的运行结果是: while(a {t=a;a=b;b=t;c--;} printf(“%d,%d,%d”,a,b,c); A、1,2,0 B、2,1,0 C、1,2,1 D、2,1,1 34.对于while语句,错误的说法是()。 A、用条件控制循环体的执行次数 B、循环体至少要执行一次 C、循环体有可能一次也不执行 D、循环体中可以包含若干条语句 35.C语言的if语句中,用作判断条件的表达式为: A、任意表达式 B、关系表达式 C、算术表达式 D、逻辑表达式 36.sizeof(float)是: A、一个整型表达式 B、一个双精度型表达式 C、一种函数调用 D、不合法 37.putchar函数可以向终端输出一个: A、实型变量值 B、字符或字符型变量值 C、整型变量表达式值 D、字符串 38.下面语句中,错误的是: A、inti;int*p;p=&i; B、inti,*p;p=&a; C、inti,*p=&a; D、inti,*p;*p=i; 39.在说明语句: int*f();中,标识符代表的是: 。 A、一个用于指向整型数据的指针变量 B、一个用于指向一维数组的指针 C、一个用于指向函数的指针变量 D、一个返回值为指针型的函数名 40.在函数调用时,以下说法正确的是。 A、函数调用后必须带回返回值 B、实际参数和形式参数可以同名 C、函数间的数据联系不能使用全局变量 D、主调函数和被调函数总是在同一 个文件里 41.若有如下定义: chara;intb;floatc;doubled;则表达式a*b+d-c值的类型 为: A、float B、int C、char D、double 42.以下能正确进行字符串赋值操作的是。 A、chars[5]={"12345"}; B、chars[5]={'1','2','3','4','5',‘6’}; C、char*s;*s="12345"; D、char*s="12345"; 43.定义了int型二维数组a[6][7]后,如果是行优先存储,则数组元素a[3][4]前的数组元 素个数为。 A、24 B、25 C、18 D、17 44.关于创建函数的目的,以下正确的说法是: A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习题