C程序期末复习3.docx
- 文档编号:7301212
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:19
- 大小:28.03KB
C程序期末复习3.docx
《C程序期末复习3.docx》由会员分享,可在线阅读,更多相关《C程序期末复习3.docx(19页珍藏版)》请在冰豆网上搜索。
C程序期末复习3
C期末复习3
一、填空题
1.C语言中基本的数据类型有:
整型 、 实型 、 字符型 。
2.有如下语句:
char A[]={”Iamastudent”};该字符串的长度是 14 ,A[3]= m 。
3.符号”a”和’a’的区别是 “a”是字符串常量,’a’是字符常量 。
4.表达式7+8>2&&25%5的结果是_________0___________。
5.数组int a[3][4];共定义了___12_________个数组元素。
6.设有下列数据定义语句,则数组元素x[i]的值是______0____________。
inti=3,x[4]={1,2,3};
7.在C语言中,二维数组元素在内存中的存放顺序是按行存放。
8.二维数组A中元素A[1][2]的值是5。
A[4][5]={{2,2,4},{4,6,5,6},{0},{0}};
9.若有以下定义:
inta[8]则数组元素下标的上限为___7____,下限为____0______。
10.写一个定义字符数组a的语句,其长度为20,并为其赋初值:
“Goodmorning”
chara[20]=“GoodMorning”;
11.对二维数组a初始化如下:
inta[3][4]={{5,10},{3,6,9,12},{0}};
则数组元素a[0][1]的值是___10_______,a[2][1]的值是___0_________。
12.能正确表示逻辑关系:
“a≥=10或a≤0”的C语言表达式是(D)
A.a>=10ora<=0B.a>=0|a<=10C.a>=10&&a<=0D.a>=10‖a<=0
13.若有以下的数组定义:
chara[]="abcde";
charb[]={'a','b','c','d','e'};
则正确的描述是:
(B)
A.a数组和b数组长度相同B.a数组长度大于b数组长度
C.a数组长度小于b数组长度D.两个数组中存放相同的内容
14.写出数学计算式
的C语言表达式:
sqrt(cos(30*3.1416/180)/fabs(1-x))
二、选择题
1.以下程序的输出结果是( D )。
charstr[15]=”hello!
”;
printf(“%d\n”,strlen(str));
A.15 B.14 C.7 D.6
2.定义如下变量和数组:
inti;intx[3][3]={1,2,3,4,5,6,7,8,9};
则语句for(i=0;i<3;i++) printf("%d ",x[i][2-i]);的输出结果是( C )。
A.1 5 9 B.1 4 7 C.3 5 7 D.3 6 9
3.不能把字符串:
Hello!
赋给数组b的语句是( B )。
A.charb[10]={'H','e','l','l','o','!
'}; B.charb[10]; b="Hello!
";
C.charb[10]; strcpy(b,"Hello!
"); D.charb[10]="Hello!
";
4.设有数组定义:
chararray[]=”China”;则数组所占的空间是___C_____。
A.4个字节 B.5个字节 C.6个字节 D.7个字节
5.数组a和b中已分别存放字符串,则正确的输出形式是B。
A.puts(a,b);B.printf(“%s,%s”,a,b);
C.putchar(a,b);D.puts(‘a','b');
6.在C语言中,要求参加运算的数必须是整数的运算符是A。
A.%B./C.!
D.*
7.设inta=1,则执行完循环while(a++<5);a的值是____A_______。
A.6B.5C.1D.-264
8.有以下程序
main()
{charp[]={'a','b','c'},q[]="abc";
printf("%d%d\n",sizeof(p),sizeof(q));
};
程序运行后的输出结果是
A.44B.33C.34D.43
【答案】C
9.有定义语句:
intb;charc[10];则正确的输入语句是______。
A.scanf("%d%s",&b,&c);B.scanf("%d%s",&b,c);
C.scanf("%d%s",b,c);D.scanf("%d%s",b,&c);
【答案】B
10.有以下程序B
main()
{
intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7)
if(p[i]%2)j+=p[i];
printf("%d\n",j);
}
程序运行后的输出结果是______。
A.42B.45C.56D.60
【答案】B
11.有以下程序
main()
{
chara[7]="a0\0a0\0";inti,j;
i=sizeof(a);j=strlen(a);
printf("%d%d\n",i,j);
}
程序运行后的输出结果是______。
A.22B.76C.72D.62
【答案】C
12.以下能正确定义一维数组的选项是______。
A.inta[5]={0,1,2,3,4,5};B.chara[]={0,1,2,3,4,5};
C.chara={'A','B','C'};D.inta[5]="0123";
【答案】B
13.以下程序的输出结果是
main()
{charch[3][5]={"AAAA","BBB","CC"};
printf("\"%s\"\n",ch[1]);
}
A."AAAA"B."BBB"C."BBBCC"D."CC"
【答案】B
14.有以下程序
main()
{intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
inti,s=0
for(i=0;i<4;i++)s+=aa[i][1];
printf(“%d\n”,s);
}
程序运行后的输出结果是
A.11B.19C.13D.20
【答案】B
15.以下程序的输出结果是______。
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\n",k);
}
A.20B.21C.22D.23
【答案】B
17.下面程序的运行结果是______。
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\n",s);}
A.12ba56B.6521C.6D.62
【答案】C
18.当执行下面的程序时,如果输入ABC,则输出结果是
#include“stdio.h”
#include“string.h”
main()
{charss[10]=“1,2,3,4,5”;
gets(ss);strcat(ss,“6789”);printf(“%s\n”,ss);
}
A.ABC6789B.ABC67C.12345ABC6D.ABC456789
【答案】A
19.下列程序执行后的输出结果是
main()
{chararr[2][4];
strcpy(arr,"you");strcpy(arr[1],"me");
arr[0][3]='&';
printf("%s\n",arr);
}
A)you&meB)youC)meD)err
【答案】A
20.下列程序段正确的是
A.#include
main()main()
{{
inti,j;}
int(i)=j;
}
C.include
main()main()
{{
inti,j;}
}
【答案】D.
21.以下符合语法规则的用户标识符是(D)
(A)break(B)7ab(C)maxyu(D)max
三、读程序,写结果
1.#include
m
n
yo
main()
{
chars[6];
inti=0;
for(;i<6;s[i]=getchar(),i++);
for(i=0;i<6;putchar(s[i]),i++);
}
在运行时分别输入:
m<回车>
n<回车>
your<回车>
2.程序
#include
#include
/*输入:
Hello_my_name_is_ricky.*/
输出:
Hlom_aei_ik.
Hlmnesiy
main()
{
charstr[81],a[81],b[81];
intn,i,j=0,k=0;
gets(str);
n=strlen(str);
for(i=0;i { if(i%2==0)a[j++]=str[i]; if(i%3==0)b[k++]=str[i]; } a[j]=b[k]='\0'; puts(a); puts(b); } 3.程序 #include #defineN5 main() { inta[N],max,min,sum,i; for(i=0;i scanf("%d",&a[i]); sum=max=min=a[0]; for(i=1;i { sum+=a[i]; if(a[i]>max)max=a[i]; if(a[i] } printf("max=%d\nmin=%d\nsum=%d\naver=%4.2f\n", max,min,sum,(float)(sum-max-min)/(N-2)); } 输入: 203058540 输出: max=85 min=5 sum=180 aver=30.00 3.main() {inta[4][5]={1,2,4,5,-4,-9,3,10,-3,2,7,8,4}; inti,j,n; n=8; i=n/5; j=n-i*5-1; printf(“a[%d][%d]=%d”,i,j,a[i][j]); } 程序的运行结果: ___a[1][2]=10____________________。 四、改错题。 阅读以下程序,在有行号标注的部分圈出有错的语句行并在其后写上正确的语句。 1、以下程序输入一个整数n,计算累加和(1+2+3+…+n)并输出。 本程序有错误,请找出错误并改正。 main() { /*1*/inti,n,sum=0; /*2*/scanf("%d",&n); /*3*/for(i=1;i<=n;i++) /*4*/sum+=i; /*5*/printf("%d",sum); } main() { /*1*/inti,n,sum; /*2*/scanf(“%d”,&n); /*3*/for(i=0;i /*4*/sum+=n; /*5*/printf(“%d”,sum); } 2、以下程序查找100至999之间所有符合以下条件的数: 是另一数的平方;至少有两位数是相同的。 如数144,它是12的平方,其中有两位4。 本程序有三个错误,请找出错误并改正。 main() { /*1*/intn,m,a,b,c; /*2*/for(n=10;n<=31;n++) /*3*/{ /*4*/m=n*n; /*5*/a=m%10; /*6*/b=m/10%10; /*7*/c=m/100; /*8*/if(a==b||b==c||a==c) /*9*/printf("%d",m); } } main() { /*1*/intn,m,a,b,c; /*2*/for(n=10;n<=31;n++) /*3*/{ /*4*/m=n*n; /*5*/a=m/10; /*6*/b=m/10%10; /*7*/c=m/100%10; /*8*/if(a==b&&b==c&&a==c) /*9*/printf("%d",n); } } 3、下列程序的功能有: (1)输入若干个学生成绩,若输入数据大于100或小于0(除-999外),则不作记录,重新输入;当输入–999,则输入结束。 (2)统计所有输入成绩的最大值、最小值、成绩个数、平均值,并输出之。 该程序中有八个错误,请找出错误并改正。 main() /*1*/{intmark,n=0,sum=0; /*2*/intmax=0,min=100; /*3*/for(;;); /*4*/{scanf("%d",mark); /*5*/if(mark=-999)break; /*6*/if(mark>100) /*7*/{printf("mark>100,Reinput! \n"); /*8*/break;} /*9*/n++;sum+=mark; /*10*/if(mark>max)max=mark /*11*/elsemin=mark; /*12*/} /*13*/sum%=n; /*14*/printf("%d,%d,%d,%d\n",max,min,n,sum); } #include"stdio.h" main() /*1*/{intmark,n=0,sum=0; /*2*/intmax=0,min=100; /*3*/for(;;) /*4*/{scanf("%d",&mark); /*5*/if(mark==-999)break; /*6*/if(mark>100||mark<0) /*7*/{printf("mark>100or<0,Reinput! \n"); /*8*/continue;} /*9*/n++;sum+=mark; /*10*/if(mark>max)max=mark; /*11*/if(mark /*12*/} /*13*/sum/=n; /*14*/printf("%d,%d,%d,%d\n",max,min,n,sum); } 4、下列程序是为指定的数组输入10个数据,并求它们的和。 请修改错误。 #include voidmain() /*1*/{intn=10,i,sum=0; /*2*/inta[10]; /*3*/for(i=0;i<10;i++) { /*4*/scanf("%d",&a[i]); /*5*/sum=sum+a[i]; } /*6*/printf("sum=%d\n",sum); } #include voidmain() /*1*/{intn=10,i,sum=0; /*2*/inta[n]; /*3*/for(i=0;i<10;i++) { /*4*/scanf("%d",a[i]); /*5*/sum=sum+a[i]; } /*6*/printf("sum=%d\n",sum); } 6、下列程序的功能为: 输入一个字符串,并将其中的字符’a’用字符串’shu’替代后输出。 如输入为“123abcaHello”,则输出为“123shubcshuHello”。 请修改错误。 #01#include #02voidmain() #03{ #04inti;charline[81]; #05scanf(“%s”,&line); #06for(i=0;line[i]! =’\n’;i++) #07if(line[i]==’a’) #08printf(“shu”); #09else #10printf(“%s”,line[i]); #11} #include voidmain() { inti;charline[81]; scanf("%s",line); for(i=0;line[i]! ='\0';i++) if(line[i]=='a') printf("shu"); else printf("%c",line[i]); } 五、程序填空题(略) 复习实验报告中的程序填空题 六、编程题 1.编写一个程序实现如下功能: 计算1~100之间所有含8的数之和。 #include main() { inti,sum=0; for(i=1;i<=100;i++) if(i%10==8||i/10==8) sum+=i; printf("sum=%d\n",sum); } 2.从键盘输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 #include voidmain() { charc; intletters=0,space=0,digit=0,other=0; printf("请输入一行字符: \n"); while((c=getchar())! ='\n') { if(c>='a'&&c<='z'||c>='A'&&c<='Z') letters++; elseif(c=='') space++; elseif(c>='0'&&c<='9') digit++; else other++; } printf("字母数: %d\n空格数: %d\n数字数: %d\n其它字符数: %d\n",letters,space,digit,other); } 3.编一个程序,输入20个整数,统计并输出其中正数、负数和零的个数。 #include voidmain() { intn,i,z=0,f=0,l=0; printf("请输入20个数: \n"); for(i=0;i<20;i++) {scanf("%d",&n); if(n>0) z++; elseif(n<0) f++; else l++; } printf("正数: %d\n负数: %d\n零数: %d\n",z,f,l); } 4.编程求1! +2! +3! +……+10! #include voidmain() {doubles=0,t=1; intn; for(n=1;n<=10;n++) { t=t*n; s=s+t; } printf("1! +2! +...+10! =%f\n",s); } 5.从键盘输入20个整数,存放在数组中,找出其中最大数并指出其所在的位置。 #include main() {intmax,i,j,a[20]; printf("Enter20integers: \n"); for(i=0;i<20;i++) scanf("%d",&a[i]); max=a[0]; for(i=1;i<20;i++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 期末 复习
![提示](https://static.bdocx.com/images/bang_tan.gif)