c程序设计复习题_第1页
c程序设计复习题_第2页
c程序设计复习题_第3页
c程序设计复习题_第4页
c程序设计复习题_第5页
已阅读5页,还剩4页未读, 继续免费阅读

下载本文档

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

文档简介

C语言程序涉及期末复习题

若有说明:imi,j=2,*p=&i;,则能完成i=j赋值功能的语句是.

A)p=&j;B)p=j;C)*p=j;D)*p=&j;

与y=(x>O?l:x〈O?-l:O);的功能相同的if语句是

A)if(x>0)y=l;B)if(x)

elseif(x<O)y=-1;if(x>O)y=l;

elsey=0;elseif(x<O)y=-l;

elsey=();

C)if(x)D)y=0;

if(x>O)y=l;if(x>=0)

elseif(x==O)y=O;if(x>O)y=l;

elsey="l:elsey=-l;

设intx=5,y=2;则值为1的表达式是

A.!(y==x⑵B.y!=x%3C.x>0&&y<0D.x!=y||x>y

若有定义:floatx=63524.6738;doubley=63524.6738;

能输出63524.674的语句是

A)printf("%5.3「,y);(B)prinlf(“%10.3「,x);

(C)printf("%F',y);(D)prinlf("%F',x);

若有定义chara[10],*b;不能正确输入字符串的语句是

A)scanf("%s”,a);B)gets(a);C)gets(&a[0]);D)gets(b);

输出一个字符'E,的正确语句是.(提示:字母A的ASCII码是65)

A)printf("%d";E');B)printfC%c",OIO5);

C)printf("%c",'\070');D)printf(',%c'',"E");

下面程序—

A.有语法错,不能通过编译

B.输出***

C.可以通过编译,但不能通过连接,不能运行.

D输出###

niain()

{intx=3,y=0,z=0;

if(x=y+z)prin氓

elseprintR"###\n");}

以下程序的输出结果是

main()

{charst[2O]="hcllo\0!";

printf("%d%s\n”,sirlen(si)、st);

}

A)7hello!B)6hello!C)20helloD)5hello

下面程序的输出是:A.7B.6C.5D.没有输出

main()

{inta=5;

if(a++>=5)

iRa==5)printf(tt%d\n,,,a);

elseprintR"%d\n”,++a);

以下程序段中,正确的是

A)chars[10J;s="test";

D)charsi[10],s2[]="tcst";s1=s2;

C)chars[10];strcpy("test",s);

D)charsl[IO]="C",s2[]="program";strcat(sl,s2);

有定义intx=O,a,b;在下列选项中使a的值为0,b的值为1的表达式是,

A)a=x++,b=a++B)(b=x+l)||(a=x)C)(a=x++)&&(b=x)D)a=x++,b=x++

若有以下程序段:

inta[]={1,035,4,2),*p=&a⑵;

printfC%d,,,*++p);

则输出是

A)0B)5C)1D)4

以下循环体的执行次数是:A.3B.2C.1D.O

main()

{inti,j

for(i=0,j=l;i<=j+1;i+=2,j--)printf("%d\n'\i);)

以下程序执行后输出结果是,

voidf(intv,intw)

{in(t;

t=v;v=w;w=t;

main()

{intx=l,y=3,z=2;

if(x>y)f(x,y);

elseif(y>z)f(y,z);

elsef(x,z);

prinlf("%d,%d,%d\n",x,y,z);

)

A)1,2,3B)1,3,2C)3J,2D)2,3,l

填空

C程序总是从虫血_开始执行

若有定义in(a=6,b=4,c=2;则表达式!(a+b)+c+l&&b+c/2的值是

下面程序的输出是一c=6b=6.67a=6.666667

main(){doublea;floatb;intc;

c=b=a=20/3.();printf(4tc=%db=%6.2fa=%3f\n'\c,b,a);}

以下程序的运行结果是_18—

#includc<stdio.h>

charfun(intx,inty)

{staticintz=0;

if(x<y)z+=x;

elsez+=y;

returnz;

1

main()

{inta=9,b=6,c=7;

prinlf("%d\n",fun(fun(a.b),fun(b,c)));

设有如下定义和语句,则输出是-3

intx=10,y=-3,z;

printf("%d\n",(z=x%y,z*x/y));

以下程序运行时输出35

#inckide<stdio.h>

voidf(intx[][2J)

{inti;

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

x[i][l]-;

1

main()

{inta⑶⑵={1,4,2,5,3,6},(*p)⑵;

whilc(n/=10);}

下面程序求:x=l+l/l!+l/2!+l/3!+.............+l/n!

main()

{intn,ij;longm;doublex=1.0;

printff'Entern:M);sea喊“%d”,&n);

for(i=l;i<=n;i++){

m=1;

x=[2];}

printR“x=%f\n”,x);

下面程序运行时若输入45则输出是一1024

#include<stdio.h>

intfun(intx,intn)

{intp:

if(n==0)p=l;

elsep=x*fun(x,n-l);

return(p);

)

main()

{inta,k;

scanf("%d%d",&a,&k);

printf(u%d\n',fun(a,k));

下面程序判断用户输入的数是否是“回文数”(即正读反读都相同的数,如12321)。若是回文数则

输出“yes”,否贝怖出“no”。

niain()

{intbuffer[10],i,k,f;longnumber,n;

printf("Enteranumber:");scanf("%ld".&number);

k=0;n=number;

do{buffer[k]=n%10;

k=k+l;n=n/10;}while([1]);

f=l;

fbr(i=O;i<=k/2-l;i++)

if([2])f=0;

if(f)printf("yes\n");

elseprintf(Hno\n");

下面程序的输出是40

main()

{inta[3][4]={120,6,3,4,7,653};

int*p;

p=&a[2][3];

printf("%d,%d\n",all]ll],*p);

)

定义一个结构体类型,使其能够存储新生的信息,

包括:学号(整型),姓名,性别(字符型),年龄,入学成绩(整型)。

改错

1.下面的程序求14-1/2+1/3+1/4+........1/n

niain()

{ints,n,m=0;floats=0.0:

scanfC%d,,,&n);

whiie(m<=n)s=s+l/m;m++;{s=s+1.0/m;m++;}

printf(tt%d\n,,,s);printf(t4%An,\s);

2.下面的程序功能是将输入的一个字符串按逆序输出,例如,输入“afdrlle”,输出则是

“ellrdfa”。

main()

(

inti,j,n;

charstr[50];charm;

scanfC*%sM,str);

n=strlen(str);

for(i=0,j=n;i<j;i++,j-)iv°+l)/2或i<=j/2

{str[i]=strU-l];ni=str[i];

strli]=strlj-l];

strfj-lbstrfi];str[j-l]=m;

1

prinlf("%s\n",str);

将下面程序补充完整

1.下面程序根据输入的字符处理输入的两个数,如输入字符』;则将两个数相加后输出;

输入则将两数相除后输出(若除数为0,则输出错误信息)。

#include<stdio.h>

main()

{charch;

floatx,y,z;

111floatsub(float,float,char);

prinlff输入两个数和处理字符:”);

scanf("%f%fAn%c';&x,&y,&ch);

12}z=sub(x,y,ch);

printf("%f',z);

)

floatsub(floatx,floaty,charc)

{floatz;

switch(c){

casez=x+y;break;

casez=x-y;break;

casez=x*y;break:

case7':【3】if(y==0)printf("输入错误!”);elsez=x/y;break;

【4】default:printf("输入符号错误!");break;

)

returnz;

)

2.下面程序功能是输入一个正整数,将该整数的各位数字相乘并输出。如输入3521,则

输出3X5X2X1的结果30.

#include<stdio.h>

main()

{intn;

longfun(long);

printf("输入整数:”);

scanf("%d”,&n);

if(n<O)n=-n;

[11;prinlf("%d”,fun(n));

I

longfun(longni)

|

【2】longk=l;

do

{k=【3】;k*(m%IO:

m/=10;

}while(_[4]_);m或m!=0

returnk;

编程题

1.输入10个整数存放在一维数组a中,将其按由小到大顺序排列并输出,(要求:对

于重复出现的数只输出一次)。例如:输入8136371534,则输出为134567

8。

参考程序:

#include<stdio.h>

#dcfineN10

main()

{inti,j,k,a[N];

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

scanf("%d';&a[i]i;

for(i=l;i<N;i++){

k=a[i];

for(j=i-1;j>=O&&k<a(jJ;j—)

a[j+ll=arjl;

a|j+l]=k;

)

k=a[O];

printf("%d",a[()]);

for(i=l;i<N;i++)

if(a[i]==k)continue;

else{printf("%d",a[i]);k=a[i];)

2.输入一个包含字母的字符串(最大长度为20),输出其中ASCH码值最大的英文字

母字符。

参考程序:

#includc<string.h>

#include<stdio.h>

inain()

{inti,l;

chars[20],mc=r\0';

scanf("%s';s);

l=strlen(s);

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

if(s[i]>='A'&&s[i]<='Z'||sril>=,a,&&s[i]<=,z')

i£s[i]>mc)mc=s[i];

printf(',%c\n",mc);

}

3.输入10个学生3门课的成绩,设计两个函数分别求(1)每个学生的平均成绩;(2)按平

均成绩统计各分数段的人数,分数段划分如下(没AG为平均分):AG>90分为

优,90>AG280分为良,8OAG270为中,70>AG260为及格,AG<60为不及格。要

求:在主函数中输入学生成绩,并输出平均成绩和统计结果

#include<stdio.h>

#defineN30

main()

{intalN][3J,g[5

温馨提示

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

评论

0/150

提交评论