C程序期末复习3.docx

上传人:b****6 文档编号:7301212 上传时间:2023-01-22 格式:DOCX 页数:19 大小:28.03KB
下载 相关 举报
C程序期末复习3.docx_第1页
第1页 / 共19页
C程序期末复习3.docx_第2页
第2页 / 共19页
C程序期末复习3.docx_第3页
第3页 / 共19页
C程序期末复习3.docx_第4页
第4页 / 共19页
C程序期末复习3.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

C程序期末复习3.docx

《C程序期末复习3.docx》由会员分享,可在线阅读,更多相关《C程序期末复习3.docx(19页珍藏版)》请在冰豆网上搜索。

C程序期末复习3.docx

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.#includeB.#include

main()main()

{{

inti,j;}

int(i)=j;

}

C.includeD.#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++)

if(max

{max=a[i];

j=i;

}

printf("%d,%d",max,j);

}

6.从键盘输入两个正整数m和n,要求m中放大的值,n中放小的值,求它们的最大公约数和最小公倍数。

#include

voidmain()

{

intp,r,n,m,temp;

printf("请输入两个正整数n,m:

");

scanf("%d,%d,",&n,&m);

if(n

{

temp=n;

n=m;

m=temp;

}

p=n*m;

while(m!

=0)

{

r=n%m;

n=m;

m=r;

}

printf("它们的最大公约数为:

%d\n",n);

printf("它们的最小公约数为:

%d\n",p/n);

}

7.从键盘输入一个3×3二维数组,输出该矩阵,再将其转置后输出。

所谓转置即行列互换。

voidmain()

{inta[3][3],b[3][3],i,j;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1