大学C语言期末考试练习题(带详解答案)_第1页
大学C语言期末考试练习题(带详解答案)_第2页
大学C语言期末考试练习题(带详解答案)_第3页
大学C语言期末考试练习题(带详解答案)_第4页
大学C语言期末考试练习题(带详解答案)_第5页
已阅读5页,还剩114页未读 继续免费阅读

下载本文档

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

文档简介

●单项选择题

一个完整可运行C源程序中

____.

A)能够有一个或多个主函数

B)必须有且仅有一个主函数

C)能够没有主函数

D)必须有主函数和其它函数组成C语言源程序基本单位是____.

A)子程序B)过程

C)文本D)函数BD

返回目录C语言程序设计概述第1页●单项选择题

某C程序由一个主函数main()和一个自定义函数max()组成,则该程序

____.

A)总是从max()函数开始执行

B)写在前面函数先开始执行

C)写在后面函数先开始执行

D)总是从main()函数开始执行C语言要求,一个C源程序主函数名必须为____.

A)program

B)include

C)main

D)functionDCC语言程序设计概述

返回目录第2页●单项选择题

以下说法正确是____.

A)在书写C语言源程序时,每个语句以逗号结束

B)注释时,'/'和'*'号间能够有空格

C)不论注释内容多少,在对程序编译时都被忽略

D)C程序每行只能写一个语句C语言源程序文件后缀是____,经过Compile后,生成文件后缀是____,经过Link后,生成文件后缀是____.

A).obj

B).exeC).c

D).docCCABC语言程序设计概述

返回目录第3页●单项选择题

VisualC++6.0IDE编辑窗口主要功效是____.输出窗口主要功效是____.调试器(Debug)主要功效是____.

A)建立并修改程序

B)将C源程序编译成目标程序

C)跟踪分析程序执行

D)显示编译结果信息(如语法错误等)ADCC语言程序设计概述

返回目录第4页●单项选择题

在VisualC++6.0开发环境下,C程序按工程(project)进行组织,每个工程可包含____C/CPP源文件,但只能有____main函数。

A)1个 B)2个

C)3个 D)1个以上(含1个)DAC语言程序设计概述

返回目录第5页●单项选择题

调试程序时,假如某个语句后少了一个分号,调试时会提醒错误,这种情况普通称之为____.而某个“计算2平方”程序在调试时没有提醒犯错,而且成功执行并计算出了结果,只是结果等于5,这种情况普通称之为____. A)语法错误 B)正常情况

C)编译器犯错 D)逻辑设计错误ADC语言程序设计概述

返回目录第6页C语言程序设计基本数据类型与运算符●单项选择题

C语言中最基本非空数据类型包含

____.A)整型、浮点型、无值型

B)整型、字符型、无值型

C)整型、浮点型、字符型

D)整型、浮点型、双精度型、字符型C语言中运算对象必须是整型运算符是____.

A)%

B)/

C)=

D)<=DA

返回目录第7页C语言程序设计基本数据类型与运算符●单项选择题

若已定义x和y为int类型,则执行了语句x=1;y=x+3/2;后y值是

____.

A)1

B)2

C)2.0

D)2.5若有以下程序段,inta=1,b=2,c;c=1.0/b*a;则执行后,c中值是

____.

A)0

B)0.5

C)1

D)25)能正确表示逻辑关系:“a≥10或a≤0”C语言表示式是____.

A)a>=10ora<=0

B)a>=0|a<=10C)a>=10&&a<=0

D)a>=10‖a<=0BAD

返回目录第8页C语言程序设计基本数据类型与运算符●单项选择题

以下字符序列中,不可用作C语言标识符是

____.

A)xyd233

B)No.1

C)_sd

D)xyz在printf()函数中,反斜杠字符'\'表示为

____.

A)\’

B)\0

C)\n

D)\\8)设先有定义:inta=10;则表示式a+=a*=a值为____.

A)10

B)100C)1000

D)2009)设先有定义:inta=10;则表示式(++a)+(a--)值为____.A)20

B)21C)22

D)19BDDC

返回目录第9页C语言程序设计基本数据类型与运算符●单项选择题

10)设先有定义:inty=3,x=3,z=1;则语句:

printf(“%d%d\n”,(++x,y++),z+2);

输出结果为____.

A)34

B)42C)43

D)3311)假定x、y、z、m均为int型变量,有以下程序段:

x=2;y=3;z=1; m=(y<x)?y:x; m=(z<y)?m:y;则该程序运行后,m值是

____.A)4

B)3C)2

D)1DC

返回目录第10页C语言程序设计基本数据类型与运算符●单项选择题

以下选项中正当字符常量是____.

A)"B"

B)'\010'

C)68

D)D设x=3,y=4,z=5,则表示式((x+y)>z)&&(y==z)&&x||y+z&&y+z值为____.

A)0

B)1

C)2

D)314)假如a=1,b=2,c=3,d=4,则条件表示式a<b?a:c<d?c:d值为____.

A)1

B)2C)3

D)415)设intm=1,n=2;则m++==n;结果是____.A)0

B)1C)2

D)3BBAA

返回目录第11页C语言程序设计基本数据类型与运算符●填空题

1.表示式10/3结果是___________;10%3结果是______。2.执行语句:inta=12;a+=a-=a*a;后值是___________。3.以下语句输出结果是___________。

shortb=65535;printf("%d",b);31-264-1

返回目录第12页C语言程序设计基本数据类型与运算符●填空题

4.以下程序执行结果是_____________________。#include<stdio.h>main(){ inta,b,x; x=(a=3,b=a--); printf("x=%d,a=%d,b=%d\n",x,a,b);}x=3,a=2,b=3

返回目录第13页C语言程序设计基本数据类型与运算符●填空题

5.以下程序执行结果是___________。#include<stdio.h>main(){ floatf1,f2,f3,f4; intm1,m2; f1=f2=f3=f4=2; m1=m2=1; printf("%d\n",(m1=f1>=f2)&&(m2=f3<f4));}0

返回目录第14页C语言程序设计基本数据类型与运算符6.以下程序执行结果是___________。#include<stdio.h>main(){ floatf=13.8; intn; n=(int)f%3; printf("n=%d\n",n);}●填空题

n=1

返回目录第15页C语言程序设计控制结构●单项选择题

结构化程序模块不含有特征是____.

A)只有一个入口和一个出口

B)要尽可能多使用goto语句

C)普通有次序、选择和循环三种基本结构

D)程序中不能有死循环C语言中,逻辑“真”等价于____.

A)整数1 B)整数0

C)非0数 D)TRUE3)以下4条语句中,有语法错误是____.

A)if(a>b)m=a;

B)if(a<b)m=b;

C)if((a=b)>=0)m=a;

D)if((a=b;)>=0)m=a;BCD

返回目录第16页C语言程序设计控制结构●单项选择题

4)若i,j均为整型变量,则以下循环____. for(i=0,j=2;j=1;i++,j--) printf("%5d,%d\n",i,j);

A)循环体只执行一次 B)循环体执行二次

C)是无限循环 D)循环条件不正当5)以下程序段,执行结果为____. a=1; do {a=a*a; }while(!a);A)循环体只执行一次 B)循环体执行二次

C)是无限循环 D)循环条件不正当CA

返回目录第17页C语言程序设计控制结构●单项选择题

6)C语言中while与do-while语句主要区分是____.

A)do-while循环体最少无条件执行一次

B)do-while允许从外部跳到循环体内

C)while循环体最少无条件执行一次

D)while循环控制条件比do-while严格7)语句while(!a);中条件等价于____.

A)a!=0

B)~a

C)a==1

D)a==0AD

返回目录第18页C语言程序设计控制结构●单项选择题

8)以下程序运行结果为____.#include<stdio.h>main(){ inti=1,sum=0; while(i<=100) sum+=i; i++; printf("1+2+3+...+99+100=%d",sum);}A)5050 B)1

C)0

D)程序陷入死循环D

返回目录第19页C语言程序设计控制结构●单项选择题

9)以下程序运行结果为____.#include<stdio.h>main(){ intsum,pad;

sum=pad=5; pad=sum++; pad++; ++pad; printf("%d\n",pad);}A)7 B)6

C)5

D)4A

返回目录第20页C语言程序设●单项选择题

10)以下程序运行结果为____.#include<stdio.h>main(){ inta=2,b=10;

printf("a=%%d,b=%%d\n",a,b);}A)a=%2,b=%10 B)a=2,b=10C)a=%%d,b=%%d D)a=%d,b=%dD

返回目录第21页C语言程序设计●单项选择题

11)为了防止嵌套if-else语句二义性,C语言要求else总是____.

A)与缩排位置相同if组成配对关系

B)与在其之前未配正确if组成配对关系

C)与在其之前未配正确最近if组成配对关系

D)与同一行上if组成配对关系12)对于for(表示式1;;表示式3)可了解为____.

A)for(表示式1;0;表示式3)

B)for(表示式1;1;表示式3)

C)for(表示式1;表示式1;表示式3)

D)for(表示式1;表示式3;表示式3)CB

返回目录第22页C语言程序设计●程序填空题

1.下面程序功效是计算n!。#include<stdio.h>main(){ inti,n; longp; printf("Pleaseinputanumber:\n"); scanf("%d",&n); p=_____________; for(i=2;i<=n;i++) ________________; printf("n!=%ld",p);}1p=p*i;或p*=i;

返回目录第23页C语言程序设计●程序填空题

2.下面程序功效是:从键盘上输入若干学生成绩,统计并输出最高和最低成绩,当输入负数时结束输入。#include<stdio.h>main(){floatscore,max,min;printf("Pleaseinputonescore:\n");scanf("%d",&score);max=min=score;while(_____________){if(score>max)max=score;if(______________)min=score;printf("Pleaseinputanotherscore:\n");scanf("%d",&score);}printf("\nThemaxscoreis%f\nTheminscoreis%f",max,min);}score>=0score<min

返回目录第24页C语言程序设计●程序填空题

3.下面程序功效是:计算y=值。要求从键盘上输入x值,精度控制在0.00001内。#include<stdio.h>#include<math.h>main(){floatx,y=0,fz=-1,fm=1,temp=1;printf("Pleaseinputthevalueofx:\n");scanf("%f",&x);while(_____________){fz=___________;fm=fm+2;temp=fz/fm;y+=temp;}printf("\ny=%f",y);}fabs(temp)>0.00001-fz*x

返回目录第25页C语言程序设计●程序填空题

4.下面程序完成两个数四则运算。用户输入一个实现两个数四则运算表示式,程序采取switch语句对其运算进行判定后执行对应运算并给出结果。#include<stdio.h>main(){ floatx,y; charop; printf("PleaseinputExpression:"); scanf("%f%c%f",&x,&op,&y); ___________ { case'+': printf("%g%c%g=%g\n",___________); ___________;switch(op)x,op,y,x+ybreak

返回目录第26页C语言程序设计●程序填空题

case'-': printf("%g%c%g=%g\n",x,op,y,x-y); break; case'*': printf("%g%c%g=%g\n",x,op,y,x*y); break; case'/': if(___________________________) printf("DivisionError!\n"); else printf("%g%c%g=%g\n",x,op,y,x/y); break; default:printf("ExpressionError!\n"); }}(y>=-1e-6)&&(y<=1e-6)

返回目录第27页C语言程序设计●程序填空题

3.6习题三●程序填空题

case'-': printf("%g%c%g=%g\n",x,op,y,x-y); break; case'*': printf("%g%c%g=%g\n",x,op,y,x*y); break; case'/': if(___________________________) printf("DivisionError!\n"); else printf("%g%c%g=%g\n",x,op,y,x/y); break; default:printf("ExpressionError!\n"); }}(y>=-1e-6)&&(y<=1e-6)此处填y==0.0不妥原因:不论是float还是double类型变量,都有精度限制。所以一定要防止将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。假设浮点变量名字为y,应该将

if(y==0.0) //隐含错误比较转化为:if((y>=-EPSINON)&&(y<=EPSINON))其中EPSINON是允许误差(即精度)。

返回目录第28页C语言程序设计●编程题

1.给出三角形三边a、b、c,求三角形面积。(应先判断a、b、c三边是否能组成一个三角形)。#include<stdio.h>#include<math.h>main(){

floata,b,c,area,p;

scanf("%f,%f,%f",&a,&b,&c);

p=(a+b+c)/2;

if(a+b>c&&a+c>b&&b+c>a)

{

area=sqrt(p*(p-a)*(p-b)*(p-c));

printf("Area=%6.2f\n",area);

}

elseprintf("Error\n");}

返回目录第29页C语言程序设计●编程题

2.输入四个整数,要求将它们按由小到大次序输出。#include<stdio.h>main(){

inta,b,c,d,t;

scanf("%d,%d,%d,%d",&a,&b,&c,&d);

if(a>b) {t=a;a=b;b=t;}

if(a>c) {t=a;a=c;c=t;}

if(a>d) {t=a;a=d;d=t;}

if(b>c) {t=b;b=c;c=t;}

if(b>d) {t=b;b=d;d=t;}

if(c>d) {t=c;c=d;d=t;}

printf("%d,%d,%d,%d\n",a,b,c,d);}

返回目录第30页C语言程序设计●编程题

3.某幼稚园只收2至6岁小孩,2~3岁编入小班,4岁编入中班,5~6岁编入大班,编制程序实现每输入一个年纪,输出该编入什么班。#include<stdio.h>main(){

intage;

scanf("%d",&age);

switch(age)

{

case2:

case3:printf("Smallclass\n");break;

case4:printf("Middleclass\n");break;

case5:

case6:printf("Largeclass\n");break;

default:printf("Error\n");

}}

返回目录第31页C语言程序设计●编程题

4.输入一元二次方程三个系数a、b、c,求出该方程全部可能根。#include<stdio.h>#include<math.h>main(){floata,b,c,d,x1,x2;

scanf("%f,%f,%f",&a,&b,&c);

d=b*b-4*a*c;

if(fabs(a)<=1e-6)

if(fabs(b)<=1e-6)

if(fabs(c)<=1e-6)

printf("Theequation’srootisinnumerable\n.");

else

printf("None\n");

else

printf("Theequation’srootis%f\n",-c/b);

else if(fabs(d)<=1e-6)printf("x1=x2=%f\n",-b/(2*a));

返回目录第32页C语言程序设计●编程题

else

if(d>1e-6)

{x1=(-b+sqrt(d))/(2*a);

x2=(-b-sqrt(d))/(2*a);

printf("Theequation’srootis");

printf("x1=%f,x2=%f\n",x1,x2);

}

else

{

x1=-b/(2*a);

x2=sqrt(-d)/(2*a);

printf("Theequation’srootis%f+I%f\n",x1,x2);

printf("Theequation’srootis%f-I%f\n",x1,x2);

}}4.输入一元二次方程三个系数a、b、c,求出该方程全部可能根。

返回目录第33页C语言程序设计●编程题

5.编程求s=1-1/2+1/3-1/4+…-1/100。#include<stdio.h>main(){ intn,flag=1; floats=0; for(n=1;n<=100;n++) { s=s+1.0*flag/n; flag=-flag; } printf("%f\n",s);}

返回目录第34页C语言程序设计●编程题

6.编程求1!+2!+3!+…+10!之和。#include<stdio.h>main(){

longints=0,p=1;

intn;

for(n=1;n<=10;n++)

{

p=p*n;

s=s+p;

}

printf("%ld\n",s);}

返回目录第35页C语言程序设计●编程题

7.一张10元票面纸钞兑换成1元、2元或5元票面,问共有多少种不一样兑换方法?#include<stdio.h>main(){inta,b,c,sum=0;

for(a=0;a<=10;a++)

for(b=0;b<=5;b++)

for(c=0;c<=2;c++)

if(a+2*b+5*c==10)

{

printf("%d,%d,%d\n",a,b,c);

sum++;

}

printf("%d\n",sum);}

返回目录第36页C语言程序设计●编程题

8.编程打印出全部“水仙花数”。所谓水仙花数:是指一个三位数,其各位数字立方之和等于该数。#include<stdio.h>main(){

intn,a,b,c;

for(n=100;n<1000;n++)

{

a=n/100;

b=n/10%10;

c=n%10;

if(a*a*a+b*b*b+c*c*c==n)

printf("水仙花数有:%5d\n",n);

}}

返回目录第37页C语言程序设●编程题

9.假如一个数等于其全部真因子(不包含其本身)之和,则该数为完数,比如6因子有1、2、3,且6=1+2+3,故6为完数,求2~1000中完数。#include<stdio.h>main(){

ints,n,k;

for(n=2;n<=1000;n++)

{

s=0;

for(k=1;k<n;k++)

if(n%k==0)

s=s+k;

if(s==n)

printf("%5d",n);

}

printf("\n");}

返回目录第38页C语言程序设计●编程题

10.输出7~1000中个数位为7全部素数,统计其个数并求出它们和。#include<stdio.h>main(){intn,count=0,total=0,m,temp,y;

for(n=7;n<1000;n++)

{for(m=2;m<n;m++)

if(n%m==0)break;

if(n==m)

{temp=n%10;

if(temp==7)

{printf("%6d",n);

if(count%5==4)printf("\n");

count++;

total=total+n;

}

}

}

printf("\ncount=%d,total=%d\n",count,total);}

返回目录第39页C语言程序设计控制结构●编程题

11.一个自然数平方末几位与该数相同时,称该数为同构数。比如252=625,则25为同构数。编程求出1~1000中全部同构数。#include<stdio.h>main(){

intx;

for(x=1;x<=1000;x++)

if(x*x%10==x||x*x%100==x||x*x%1000==x)

printf("%5d",x);

printf("\n");}

返回目录第40页C语言程序设计数组●单项选择题

1.在以下数组定义、初始化或赋值语句中,正确是___. A)inta[8];a[8]=100; B)intx[5]={1,2,3,4,5,6}; C)intx[]={1,2,3,4,5,6};D)intn=8;intscore[n];2.若已经有定义:inti,a[100];则以下语句中,不正确是____. A)for(i=0;i<100;i++)a[i]=i; B)for(i=0;i<100;i++)scanf("%d",&a[i]); C)scanf("%d",&a); D)for(i=0;i<100;i++)scanf("%d",a+i);CC

返回目录第41页C语言程序设计数组●单项选择题

3.与定义charc[]={"GOOD"};不等价是___. A)charc[]={‘G’,’O’,’O’,’D’,’\0’}; B)charc[]="GOOD"; C)charc[4]={"GOOD"}; D)charc[5]={‘G’,’O’,’O’,’D’,’\0’};4.若已经有定义:charc[8]={"GOOD"};则以下语句中,不正确是___. A)puts(c); B)for(i=0;c[i]!=’\0’;i++)printf("%c",c[i]); C)printf("%s",c); D)for(i=0;c[i]!=’\0’;i++)putchar(c);CD

返回目录第42页C语言程序设数组●单项选择题

5.若定义a[][3]={0,1,2,3,4,5,6,7};则a数组中行大小是___. A)2 B)3 C)4 D)无确定值6.以下程序运行结果是___. #include<stdio.h> voidf(intb[]) { inti=0; while(b[i]<=10) {

b[i]+=2;

i++;

} } A)271211139

B)171211137 C)171211139

D)17129137BBmain(){ inti,a[]={1,5,10,9,13,7}; f(a+1); for(i=0;i<6;i++) printf("%4d",a[i]);}

返回目录第43页C语言程序设计数组●单项选择题

7.若执行以下程序段,其运行结果是___. charc[]={'a','b','\0','c','\0'}; printf("%s\n",c); A)abc

B)‘a’‘b’

C)abc

D)ab8.数组名作为参数传递给函数,作为实际参数数组名被处理为___. A)该数组长度 B)该数组元素个数

C)该函数中各元素值 D)该数组首地址11.当接收用户输入含空格字符串时,应使用函数__. A)scanf()B)gets()C)getchar()D)getc()DDB

返回目录第44页C语言程序设计数组●单项选择题

9.执行下面程序段后,变量k中值为___. intk=3,s[2]={1}; s[0]=k; k=s[1]*10; A)不定值 B)33

C)30

D)010.在定义

inta[5][4];

之后;对a引用正确是___. A)a[2][4]

B)a[5][0]

C)a[0][0]

D)a[0,0]DC

返回目录第45页C语言程序设计数组●程序填空题

1.以下程序用来检验二维数组是否对称(即:对全部i,j都有a[i][j]=a[j][i])。#include<stdio.h>main(){ inta[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,8,6,7,4}; inti,j,found=0; for(j=0;j<4;j++) { for(i=0;i<4;i++) if(___________________) { found=___________________; break; } if(found)break; } if(found) printf("不对称\n"); else printf("对称\n");}a[i][j]!=a[j][i]1

返回目录第46页C语言程序设计数组●程序填空题

2.以下程序是用来输入5个整数,并存放在数组中,找出最大数与最小数所在下标位置,并把二者对调,然后输出调整后5个数。#include<stdio.h>main(){ inta[5],t,i,maxi,mini; for(i=0;i<5;i++) scanf("%d",&a[i]); mini=maxi=_____【3】________; for(i=1;i<5;i++) { if(_______【4】______)mini=i; if(a[i]>a[maxi])_____【5】________; } printf("最小数位置是:%3d\n",mini); printf("最大数位置是:%3d\n",maxi); t=a[maxi];______【6】_______; a[mini]=t; printf("调整后数为:"); for(i=0;i<5;i++) printf("%d",a[i]); printf("\n");}0a[mini]>a[i]maxi=ia[maxi]=a[mini]

返回目录第47页C语言程序设计数组●程序填空题

3.给定一3x4矩阵,求出其中最大元素值,及其所在行列号:main(){ inti,j,row=0,colum=0,max; staticinta[3][4]={{1,2,3,4},{9,8,7,6},{10,-10,-4,4}}; _______【7】______; for(i=0;i<=2;i++) for(j=0;j<=3;j++) { _____【8】________; _____【9】_______; } printf("%d%d",row,colum);}max=a[0][0]if(a[i][j]>max){ max=a[i][j]; row=i; colum=j;}

返回目录第48页C语言程序设计数组●程序填空题

4.下述函数用于确定给定字符串长度,请完成程序。strlen(chars[]){ inti=0; while(______【10】_______)++i; return(______【11】_______);}s[i]!=‘\0’i

返回目录第49页C语言程序设计数组●程序填空题

5.以下程序功效是从键盘上输入若干个字符(以回车键作为结束)组成一个字符数组,然后输出该字符数组中字符串,请填空!#include<stdio.h>main(){ charstr[81]; inti; for(i=0;i<80;i++) { str[i]=getchar(); if(str[i]==’\n’)break; } str[i]=’\0’; _____【12】________; while(str[i]!=’\0’)putchar(_____【13】________);}i=0str[i++]

返回目录第50页C语言程序设计数组●阅读程序并写出运行结果

1.写出以下程序运行结果并分析之:#include<stdio.h>main(){ staticinta[4][5]={{1,2,3,4,0},{2,2,0,0,0},{3,4,5,0,0},{6,0,0,0,0}}; intj,k; for(j=0;j<4;j++) { for(k=0;k<5;k++) { if(a[j][k]==0)break; printf("%d",a[j][k]); } } printf("\n");}

返回目录第51页C语言程序设计数组●阅读程序并写出运行结果

2.写出以下程序运行结果并分析之:#include<stdio.h>main(){ inta[6][6],i,j; for(i=1;i<6;i++) for(j=1;j<6;j++) a[i][j]=i*j; for(i=1;i<6;i++) { for(j=1;j<6;j++) printf("%-4d",a[i][j]); printf("\n"); }}

返回目录第52页C语言程序设计数组●阅读程序并写出运行结果

3.写出以下程序运行结果并分析之:#include<stdio.h>main(){ inta[]={1,2,3,4},i,j,s=0; j=1; for(i=3;i<=0;i--) { s=s+a[i]*j; j=j*10; } printf("s=%d\n",s);}

返回目录第53页C语言程序设计数组●阅读程序并写出运行结果

4.写出以下程序运行结果并分析之:#include<stdio.h>main(){ inta[]={0,2,5,8,12,15,23,35,60,65};

intx=15,i,n=10,m; i=n/2+1; m=n/2;

while(m!=0) { if(x<a[i]){i=i-m/2-1;m=m/2;} else if(x>a[i]){i=i+m/2+1;m=m/2;} else break; } printf("place=%d",i+1);}

返回目录第54页C语言程序设计数组●阅读程序并写出运行结果

5.写出以下程序运行结果并分析之:#include<stdio.h>main(){ inta[]={1,2,3,4},i,j,s=0; j=1; for(i=3;i>=0;i--) { s=s+a[i]*j; j=j*10; } printf("s=%d\n",s);}

返回目录第55页C语言程序设计数组●阅读程序并写出运行结果

6.写出以下程序运行结果并分析之:#include<stdio.h>main(){ charstr[]={"1a2b3c"}; inti; for(i=0;str[i]!='\0';i++) if(str[i]>='0'&&str[i]<='9') printf("%c",str[i]); printf("\n");}

返回目录第56页C语言程序设计数组●编程题

1.编一程序用简单项选择择排序方法对10个整数排序(从大到小)。排序思绪为:首先从n个整数中选出值最大整数,将它交换到第一个元素位置,再从剩下n-1个整数中选出值次大整数,将它交换到第二个元素位置,重复上述操作n次后,排序结束。2.编写一程序,实现两个字符串连接(不用strcat()函数)。3.编写一个把字符串转换成浮点数函数。4.若有说明:inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};现要将a行和列元素交换后存到另一个二维数组b中。试编程。

返回目录第57页●编程题

返回目录第58页C语言程序设计函数●单项选择题

C语言中函数形参缺省存放类型是____.

A)静态(static)

B)自动(auto)

C)存放器(register)D)外部(extern)函数调用语句function((exp1,exp2),18)中含有实参个数为____.

A)0 B)1

C)2 D)3BC

返回目录第59页C语言程序设计函数●单项选择题

下面函数返回值类型是____. square(floatx) { returnx*x; }

A)与参数x类型相同B)是void型

C)无法确定D)是int型C语言要求,程序中各函数之间____.

A)不允许直接递归调用,也不允许间接递归调用

B)允许直接递归调用,但不允许间接递归调用

C)不允许直接递归调用,但允许间接递归调用

D)既允许直接递归调用,也允许间接递归调用DD

返回目录第60页C语言程序设函数●单项选择题

一个函数返回值类型取决于____.A)return语句中表示式类型

B)调用函数时暂时指定

C)定义函数时指定或缺省函数类型

D)调用该函数主调函数类型下面叙述中,错误是____.A)函数定义不能嵌套,但函数调用能够嵌套

B)为了提升可读性,编写程序时应该适当使用注释

C)变量定义时若省去了存放类型,系统将默认其为静态变量

D)函数中定义局部变量作用域在函数内部CC

返回目录第61页C语言程序设计函数●单项选择题

7)在一个源程序文件中定义全局变量有效范围为___.A)一个C程序全部源程序文件

B)该源程序文件全部范围

C)从定义处开始到该源程序文件结束

D)函数内全部范围 某函数在定义时未指明函数返回值类型,且函数中没有return语句,现若调用该函数,则正确说法是___.A)没有返回值B)返回一个用户所希望值

C)返回一个系统默认值D)返回一个不确定值CD

返回目录第62页C语言程序设计函数●单项选择题

9)函数swap(intx,inty)可实现对x和y值交换。在执行以下定义及调用语句后,a和b值分别为___.inta=10,b=20;swap(a,b);A)10和10

B)10和20

C)20和10

D)20和20下面错误叙述是___.A)在某源程序不一样函数中能够使用相同名字变量

B)函数中形式参数是局部变量

C)在函数内定义变量只在本函数范围内有效

D)在函数内复合语句中定义变量在本函数范围内有效BD

返回目录第63页C语言程序设计函数●程序填空题

1.求s=1!+2!+3!+…+10!之和。程序以下:#include<stdio.h>longintfactorial(intn){

intk=1;

longintp=1;

for(k=1;k<=n;k++)

__________________;

returnp;}main(){

intn;

floatsum=0;

for(n=1;n<=10;n++)

______________________;

printf("%6.3f\n",sum);}p=p*ksum+=factorial(n)或sum=sum+factorial(n)

返回目录第64页C语言程序设计函数●程序填空题

2.以下函数用以求xy次方。doublefun(doublex,inty){

inti;

doublem=1;

for(i=1;i______________;i++) m=_______________;

returnm;}<=y或<y+1m*x

返回目录第65页C语言程序设函数●程序填空题

3.下面定义了一个函数pi,其功效是依据以下近似值公式来求π值:#include<stdio.h>#include<math.h>doublepi(longn){

doubles=_________________;

longk;

for(k=1;k<=n;k++)

s=s+________________;

return(_____________________);}01/(k*k)sqrt(6*s)答案不唯一,因为若初值不一样,则有不一样答案组合。

返回目录第66页C语言程序设计函数●阅读程序并写出运行结果

1.下面程序运行结果是_________________:#include<stdio.h>#defineMAX_COUNT4voidfun();main(){

intn;

for(n=1;n<=MAX_COUNT;n++)

fun();}voidfun(){

staticintk;

k=k+2;

printf("%d,",k);}2,4,6,8,

返回目录第67页C语言程序设计函数●阅读程序并写出运行结果

2.下面程序运行结果是_________________:#include<stdio.h>intfun(intx){

ints;

if(x==0||x==1)

return3;

s=x-fun(x-3);

returns;}main(){

printf("%d\n",fun(3));}0

返回目录第68页C语言程序设计函数●阅读程序并写出运行结果

3.下面程序运行结果是_________________:#include<stdio.h>unsignedintfun(unsignednum){

unsignedintk=1;

do

{

k=k*num%10;

num=num/10;

}while(num);

returnk;}main(){

unsignedn=25;

printf(“%u\n”,fun(n));}0

返回目录第69页C语言程序设函数●阅读程序并写出运行结果

4.下面程序运行结果是_________________:#include<stdio.h>intfun(intx,inty){

staticintm=0,n=2;

n+=m+1;

m=n+x+y;

returnm;}main(){

intj=4,m=1,k;

k=fun(j,m);

printf("%d,",k);

k=fun(j,m);

printf("%d\n",k);}8,17

返回目录第70页C语言程序设计函数●阅读程序并写出运行结果

5.下面程序运行结果是_________________:#include<stdio.h>voidt(intx,inty,intp,intq){

p=x*x+y*y;

q=x*x-y*y;}main(){

inta=4,b=3,c=5,d=6;

t(a,b,c,d);

printf("%d,%d\n",c,d);}5,6

返回目录第71页C语言程序函数●编程题

1.编程实现从键盘输入一整数,假如该整数为素数,则返回1,不然返回0。要求单独编写一个求素数自定义函数。#include<stdio.h>intfun(intx){

intn;

for(n=2;n<x;n++)

if(x%n==0)return0;

return1;}main(){

intx;

scanf("%d",&x);

if(fun(x))

printf(“%disaprimenumber!\n",x);

else

printf("%disnotaprimenumber!\n",x);}

返回目录第72页C语言程序设计函数●编程题

2.试用递归方法编写一个返回长整型函数,以计算斐波纳契数列前20项。该数列满足:F(0)=1,F(1)=1,F(n)=F(n-1)+F(n-2)(n>2)。#include<stdio.h>longintFibonacci(intn){

longintp;

if(n==0||n==1)p=n;

elsep=Fibonacci(n-1)+Fibonacci(n-2);

returnp;}main(){intn;

for(n=1;n<=20;n++)

{printf("%8ld",Fibonacci(n));

if((n+1)%8==0)printf("\n");

}}

返回目录第73页C语言程序设计函数●编程题

3.假如一个数等于其全部真因子(不包含其本身)之和,则该数为完数,比如6因子有1、2、3,且6=1+2+3,故6为完数,求2~1000中完数。

#include<stdio.h>intIsWanshu(intn){intk,s=0;

for(k=1;k<n;k++)

if(n%k==0)s=s+k;

if(s==n)

return1;

else

return0;}main(){inti,j=0;

for(i=2;i<=1000;i++)

{if(IsWanshu(i))

{printf("%5d",i);

j=j+1;

if(j%5==0)printf("\n");

}

}}

返回目录第74页C语言程序设计指针●单项选择题

1.若已定义inta=8,*p=&a;则以下说法中不正确是__ A)*p=a=8 B)p=&a

C)*&a=*p

D)*&a=&*a2.若已定义inta[2]={8,10},*p=&a[0];假设a[0]地址为,则执行p++后,指针p值为__ A) B)

C)

D)3.若已定义inta[8]={0,2,3,4,5,6,7,8};*p=a;则数组第2个元素“2”不可表示为__ A)a[1]

B)p[1]

C)*p+1

D)*(p+1)DCC

返回目录第75页C语言程序设计指针●单项选择题

4.若已定义inta,*p=&a,**q=&p;则不能表示变量a是__

A)*&a

B)*p C)*q

D)**q5.设已定义语句“int*p[10],(*q)[10];",其中p和q分别是__ ①10个指向整型变量指针 ②指向含有10个整型变量函数指针 ③一个指向含有10个元素一维数组指针 ④含有10个指针元素一维数组

A)②、① B)①、② C)③、④ D)④、③CD

返回目录第76页C语言程序设计指针●单项选择题

6.若已定义inta[2][4]={{80,81,82,83},{84,85,86,87}},(*p)[4]=a;则执行p++;后,**p代表元素是____

A)80

B)81 C)84

D)857.执行语句“chara[10]={"abcd"},*p=a;后,(p+4)值是____

A)"abcd"

B)'\0'

C)'d’ D)不能确定8.设已定义inta[3][2]={10,20,30,40,50,60};和语句(*p)[2]=a;则*(*(p+2)+1)值为____

A)60

B)30

C)50

D)不能确定CBA

返回目录第77页C语言程序设计指针●单项选择题

9.以下程序运行结果是____#include<stdio.h>main(){ inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int*p[4],i; for(i=0;i<4;i++) p[i]=a[i]; printf("%2d,%2d,%2d,%2d\n",*p[1],(*p)[1],p[3][2],*(p[3]+1));}A)4,4,9,8

B)程序犯错C)4,2,12,11

D)1,1,7,5C

返回目录第78页C语言程序设计指针●单项选择题

10.以下各语句或语句组中,正确操作是____

A)chars[4]="abcde"; B)char*s;gets(s); C)char*s;s="abcde"; D)chars[5];scanf("%s",&s);C

返回目录第79页C语言程序设计指针●单项选择题

11.以下程序运行结果是____#include<stdio.h>main(){ char*s="xcbc3abcd"; inta,b,c,d;

温馨提示

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

评论

0/150

提交评论