C语言复习基础专题.docx

上传人:b****5 文档编号:8006605 上传时间:2023-01-27 格式:DOCX 页数:18 大小:25.51KB
下载 相关 举报
C语言复习基础专题.docx_第1页
第1页 / 共18页
C语言复习基础专题.docx_第2页
第2页 / 共18页
C语言复习基础专题.docx_第3页
第3页 / 共18页
C语言复习基础专题.docx_第4页
第4页 / 共18页
C语言复习基础专题.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C语言复习基础专题.docx

《C语言复习基础专题.docx》由会员分享,可在线阅读,更多相关《C语言复习基础专题.docx(18页珍藏版)》请在冰豆网上搜索。

C语言复习基础专题.docx

C语言复习基础专题

“C语言程序设计”期末考试复习

(一)选择题:

1.下列四组选项中,均是不合法的用户标识符的选项是( C )。

A)GS_4intB)double2a0_V

C)!

A3a#bdoD)b-aabcSwep

2.下列四组选项中,属于合法的用户标识符的选项是( D)。

A)forB)-XYZC)5iD)For

3.不合法的C语言整型常量是(B)。

A)0xe2LB)2e3C)18LD)0xe3

4.不合法的C语言实型常量是( A)。

A)-123E-3.0B)-.123C)-1.23E-1D)-0.123

5.设chara;intb;floatc;doubled;则表达式d/b+c*a值的数据类型为(C)。

A)charB)intC)doubleD)float

6.设有说明:

chara;intb;floatc;doubled;则表达式(int)(d)/b+c*a值的数据类型为( D)。

A)charB)intC)floatD)double

7.定义三个变量x、y、z,并分别赋初值为0,能实现该功能的语句是( B )。

A)intx=0;y=0;z=0;B)intx=0,y=0,z=0;C)intx,y,z=0;D)intx=y=z=0;

8.定义三个变量a,b,c,并都初始化为‘a’。

能实现该功能的语句是( B )。

A)chara=‘a’;b=‘a’;c=‘a’;B)chara=‘a’,b=‘a’,c=‘a’;

C)chara,b,c=‘a’;D)chara=b=c=‘a’;

9.设以下变量均为int类型,则值不等于8的表达式是( D )。

A)(y=7,y+1,x=y,x+1)B)(x=7,x+1,y=x++,y+1)

C)(x=y=7,++x,y+1)D)(x=y=7,++x,x+1)

10.下列for循环的循环次数是( D )。

    inti=0,j;

    for(j=3;i=j=7;i++,j++)printf(”hello”);

A)1次 B)5次C)10次 D)无限次

11.下列for循环的循环次数是( A )。

    inti=0,j;

    for(j=3;i=j=0;i++,j++)printf(”hello”);

A)0次 B)5次C)1次 D)无限次

12.表达式2<5&&6<9的值是( B )。

A)0B)1C)2D)3

13.下列for循环的循环次数是( C)。

    inti,j;

for(i=j=0;!

i||j<=5;j++)i++;

A)1次 B)5次C)6次 D)无限次

14.下列while循环的循环次数是( D )。

  inta=1,b=2;

while(a++

A)0次 B)1次C)5次 D)无限次

15.下面程序段的运行结果是( B )。

intn=0;

while(n++<=2);

printf("%d",n);

A)3 B)4C)012 D)123

16.下面程序段的运行结果是( D )。

intn=0;

while(n++<=2)printf("%d",n);

A)3B)4C)012D)123

17.若inta=5;则执行下列语句后打印的结果为( D )。

 do{printf(“%2d\n”,++a);}while(a);

A)6 B)5

C)不打印任何结果 D)陷入死循环

18.若inta=5;则执行下列语句后打印的结果为( C )。

 while(!

a)

{printf(“%2d\n”,++a);}

  A)5 B)9  C)不打印任何结果 D)陷入死循环

19.已知:

inti=5;计算表达式–i++的值是( C )。

A.-3     B.-2      C.-5     D.非法

20.以下程序的输出结果是(C)

main()

{ int a=2,b=1,c=3,d;

printf("%d\n",d=a>b?

(a>c?

a:

c):

(b));

}

A)2         B)1        C)3        D)不确定

21.有一个函数原型为:

test(floatx,inty);则该函数的返回值类型为( D )。

A)void B)doubleC)floatD)int

22. 有以下程序:

 

#include  

main() 

{char c; 

while((c=getchar())!

='?

') putchar(c++); 

程序运行时,如果从键盘输入:

Y?

N?

<回车>,则输出结果为(A)。

A)YB)ZC)XD)YN

23.有以下程序:

 

#include  

main() 

{char c; 

while((c=getchar())!

='\n') putchar(--c); 

} 程序运行时,如果从键盘输入:

BC<回车>,则输出结果为( B )。

A)BCB)ABC)BD)C

24.有两个字符数组x、y,则以下正确的输入语句是( B )。

A)scanf("%s%s",&x,&y);B)scanf("%s%s",x,y);

C)gets(x,y);D)gets(&x),gets(&y);

25.有个字符数组a,则以下正确的输入语句是( A ).

A)gets(a);B)scanf("%s","a");C)scanf("%s",&a);D)gets("a");

26.以下函数调用语句中实参的个数是( A )。

fun((v1,v2),(v3,v4,v5),v6);

A)3B)4C)5D)6

27.若有以下定义

inta[]={1,2,3,4,5,6,7};

charc1=’b’,c2=’2’;

则数值为4的表达式是___D___。

A)c2+2B)a[2]+2C)‘F’-c1D)a[‘5’-c2]

28.说明语句如下:

inta[10]={1,2,3,4,5,6,7,8,9},*p=a;则数值为6的表达式是( D )。

A.*p+6   B.*(p+6) C.p+5 D.*p+=5

29.以下程序的输出结果是( C )

main()

{intx[5]={10,20,30,40,50},*p;

 p=x;

 *p++;

 printf(“%d”,*p);

}

A.10      B.11      C.20       D.21

30.定义一个结构体型变量时,分配给它的内存字节数是( C )。

A.结构体型变量的成员中,占用字节数最多的成员占用的字节数

B.结构体型变量的成员中,占用字节数最少的成员占用的字节数

C.结构体型变量的成员中,所有成员占用的字节数总和

D.结构体型变量的成员中,所有成员占用的字节数总和加1

31.根据以下定义,能输出字符‘A’的语句是( A )。

structperson

{charname[9];

intage;

}class[10]={“John”,17,”Paul”,19,”Mary”,18,”Adam”,16};

A)printf(“%c”,class[3].name[0]);B)printf(“%c”,class[2].name[4]);

C)printf(“%c”,class[3].name[3]);D)printf(“%c”,class[3].name[1]);

32.根据以下定义,输出字符不为‘a’的语句是( C )。

structperson

{charname[9];

intage;

}class[10]={“John”,17,”Paul”,19,”Mary”,18,”Adam”,16};

A)printf(“%c”,class[1].name[1]);B)printf(“%c”,class[2].name[1]);

C)printf(“%c”,class[3].name[0]);D)printf(“%c”,class[3].name[2]);

33.下面程序的运行结果是( D )。

main()

{structcmplx

{intx;

inty;

}cnum[2]={1,2,3,4};

printf("%d\n",cnum[1].y/cnum[0].x*cnum[0].y);}

A)1B)4C)6D)8

34.下面程序的运行结果是( D)。

main()

{structcmplx

{inta ;

intb ;

}cnum[3]={1,2,3,4,5,6};

printf("%d\n",cnum[1].a/cnum[0].b*cnum[0].a);

}

A)4B)3C)2D)1

35.若要将“program.txt”文件打开用于追加信息,则以下格式正确的是( B )。

A)fp=fopen(“program.txt”,“r”);B)fp=fopen(“program.txt”,“a+”);

C)fp=fopen(“program.txt”,“r+”);D)fp=fopen(“program.txt”,“w”);

36.要使用fopen函数打开一个新的只写的二进制文件,文件的打开方式应是( B )。

A)“w”B)“wb”C)“w+“D)“wb+”

37.下列关于C语言中对文件的操作的传述中,正确的是( A )。

A.对文件进行操作必须先打开文件 B.对文件进行操作必须先闭文件

C.对文件进行操作时没有顺序的要求D.对文件操作前须先测试文件是否存在

38.要使用fopen函数打开一个新的可读可写的文本文件,文件的打开方式应是( C )。

A)“a+”B)“r+”C)“w+“D)“wb+”

39.若要将“text.txt”文件打开用于追加信息,则以下格式正确的是( B )。

A.fp=fopen(“text.txt”,“r”);B.fp=fopen(“text.txt”,“a+”);

C.fp=fopen(“text.txt”,“r+”);D.fp=fopen(“text.txt”,“w”);

40.若要打开a盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是( B)。

A.fopen(“a:

\user\abc.txt”,“r”)B.fopen(“a:

\user\abc.txt”,“r+”)

C.fopen(“a:

\user\abc.txt”,“rb”)D.fopen(“a:

\user\abc.txt”,“w”)

41.执行函数fopen(“abc.txt”,“w+”)的含义是(C)。

A.以读的方式打开一个文件B.以写的方式打开一个文件

C.创立一个既可读又可写的文件D.创立一个只可写的文件

42.要使用fopen函数打开一个新的只写的二进制文件,文件的打开方式应是(B)。

A)“w”B)“wb”C)“w+“D)“wb+”

(二)填空题:

(1)

将算术表达式写成C表达式为:

_(3*x-2*y)/(x*x-y)______。

(2)表达式(1/2)*3.0的值为:

____0.0____。

(3)

2x+1

x2+4y

将算术表达式写成C表达式为:

___(x*x+4*y)/(2*x+1)__。

(4)若有intx=10,y=20;则运行

printf(“%d,%d”,++x,y++);结果为:

______11,20_______。

(5)若有定义inta[4][5]={{1,0,1,0},{2,1,2,1,0},{5}},则初始化后,a[1][3]的值是__1__,a[3][1+]的值是__0___。

(6)表达式(1/2)*1.5的值为:

____0.0________。

(7)将表达式a≤b≤c写成C表达式为:

_____a<=b&&b<=c_____。

(8)以下程序的功能是判断一个大于1的整数是否为素数,是则输出‘Y’,否则输出‘N’,请填空。

main()

{inti,n;

scanf(“%d”,&n);

for(i=2;i

if(n%i==0_)break;

if(__i>=n__)printf(“Y”);

_else____printf(“N”);}

(9)以下程序的运行结果是___3______。

main()

{inta[]={1,2,3,4,5};

charc=’a’;

printf(“%d”,a[‘c’-c]);}

(10)以下程序的功能是输入一个字符串,输出字符串的长度,请填空。

#include

main()

{charstr[20];

gets(__str_);

printf(“%d”,___strlen(str)_____);

getch();}

(11)以下函数的功能是判断一个大于1的整数是否为素数,是则返回‘Y’,否则返回‘N’,请填空。

__char_sushu(intx)

{inti;

for(i=2;i

if(_x%i=0_)return‘N’;

return‘Y’;}

(12)若有定义:

inta[]={2,4,6,8,10,12},*p=&a[1];

则*(++p)的值是__6___。

(三)程序阅读题:

(写出程序运行结果)

1.下面程序的输出结果是45。

#include

main()

{intx;

x=(x=4*5,x+5,x+25);

printf(“x=%d\n”,x) ;}

2.下面程序的输出结果是1,2.40。

#include

main()

{floaty;intx;

x=1.2;

y=(x+3.8)/2;

printf(“x=%d,y=%.2f\n”,x,y) ;}

3.下面程序输出结果是31。

main()

{intx=10,y=20,z=30;

if(x

if(y<0)z=0;

elsez+=1;

printf(“%d\n”,z);}

4.下面程序运行结果是x=7。

#include

main()

{intx=5;

if(x++>5)printf(“x=%d\n”,x);

elseprintf(“x=%d\n”,++x);}

5.下面程序的输出结果是2。

#include

main()

{int x=10203,z=0,y;

   while(x)

{y=x%10;

if(y==0)z++;

x=x/10;}

printf("%d",z);}

6.下面程序的运行结果是27。

#include

main()

{inti,sum;

sum=0;

for(i=1;i<=9;i++)

{if(i%3==0)continue;

sum=sum+i;}

printf("sum=%d",sum);}

7.下面程序的运行结果是852。

#include

main()

{inty;

for(y=10;y>0;y--)

if(y%3==0)printf("%d",--y);}

8.下面程序的运行结果是7,3

#include

main()

{inta[10]={0,2,-13,21,11,67,-78,8,90,-53};

inti,count1=0,count2=0;

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

if(a[i]>=0)count1++;

elsecount2++;

printf(“%d,%d\n”,count1,count2);}

9.下面程序输入123456789,

运行结果是Thesumis15

#include

main()

{inta[3][3],sum=0;

inti,j;

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

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

scanf(“%d”,&a[i][j]);

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

sum+=a[i][i];

printf(“Thesumis%d\n”,sum);}

10、下面程序运行结果是2610

#include

main()

{inta[3][3]={1,2,3,4,5,6,7,8,9},b[3]={0},i,j;

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

b[i]=a[i][0]+a[0][i];

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

printf(“%5d”,b[i]);}

11.下面程序运行时,输入AbCdEf,阅读程序写出输出结果为:

abcdef

#include

#include

#defineN100

main()

{chars[N];inti;

printf(“enteraarray:

”);

gets(s);

for(i=0;i

if(s[i]>=’A’&&s[i]<=’Z’)s[i]+=32;

puts(s);}

12.阅读下面程序,当输入12345时,写出输出结果K=55

#include

main()

{longn,k=0;

printf("Pleaseenteranumber:

");

scanf("%ld",&n);

for(;n!

=0;)

{k+=(n%10)*(n%10);

n/=10;}

printf("k=%d",k);}

13.阅读程序写出执行结果为:

x=20,y=10

a=10,b=20

voidswap(intx,inty)

{intz;

z=x;x=y;y=z;

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

}

main()

{inta=10,b=20;

swap(a,b);

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

(四)程序填空题:

1、补写下面程序:

使其实现将输出的字符串,向前移一位存放,最后一个元素存放原来的第一个元素。

如输入:

abcd123,后移一位的结果是bcd123a。

#include

#include

voidfun(char*str)

{chartemp;intn,i;

n=strlen(str);

temp=str[0]]

for(i=0;i

str[n-1]=temp}

main()

{chars[50];

puts(“Enterastring:

”);

gets(s);

fun(s);

puts(“Thechangedstring:

”);

puts(s);}

2、以下程序的功能是:

输入两个数,调用函数使其值互换。

voidswap(int*Px,int*Py)

{intt ;

t=*px;*px=*py;*py=t;}

main()

{inta,b;

scanf(“%d,%d”,&a,&b);

swap(&a,&b);

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

3、在歌手大奖赛中,假设有10个评委,每个评委百分制评分,最后要去掉一个最高分求平均得出每个选手的最后得分,请编写程序按此规则求出1名选手的最后得分。

#defineN10

main()

{ints[N],i,score=0,max;

printf("PleaseInput%dscores:

\n",N);

for(i=0;i

scanf("%d",&s[i]);

max=s[0];

for(i=0;i

{score+=s[i];

if(max

max=s[i];

}

printf("TheScore:

%.2f\n",(float)(scores–max)/(N-1));}

4、以下程序的功能是:

找到person所指结构体数组中年龄最大的人。

#include

#defineN3

main()

{structperson

{charname[10];

charsex;

intage;

}ss[N]={{"ZhangSan",'F',22},{"LiSi",'M',20},{"WangWu",'F',18}};

inti,m=0;

for(i=1;i

if(ss[].age>ss[].age)m=i;

printf("%sistheoldest,andis%dyearsofage.",ss[m].name,ss[m].age);}

(五)编程题:

1、输入底面半径r和高度h,计算并输出圆柱体的体积v。

v=πr2h(π取3.14,v计算结果保留到小数点后两位)

main()

{

floatr,h,v;

scanf("%f%f",&r,&h);

v=3.14*r*r*h;

printf("v=%.2f",v);

getch();

}

2、编程:

输入华氏温度F,输出摄氏温度C和绝对温度K。

(计算结果保留到小数点后两位.转换公式:

C=5

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

当前位置:首页 > 总结汇报 > 学习总结

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

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