C语言复习题1

更新时间:2024-04-28 20:26:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C语言复习题(1)

一、选择

1.以下选项中不合法的标识符是

A)print B)FOR C)&a D)_00

2.以下选项中不属于字符常量的是

A)'C' B)\ C)'xCC' D)'\\072'

3.设变量已经正确定义并赋值,正确的表达式是

A)x=y*5=x+z B)int(15.8%5) C)x=y+z*5,++y D)x=25%5.0

4.以下定义语句中正确的是

A)int a=b=0; B)char A=65+1,b='b'; C)float a=1,*b=&a,*c=&b; D)double a=0.0;b=1.1;

5.有以下程序段

char ch; int k; ch='a'; k=12;

printf(\ printf(\

已知字符a的ASCII十进制代码为97,则执行上述程序段后输出的结果是 A)因变量类型与格式描述符的类型不匹配输出无定值 B)输出项与格式描述符个数不符,输出为零值或不定值 C)a,97,12k=12 D)a,97,k=12

6.已知字母A的ASCII代码值为65,若变量kk为char型,不能正确判断出kk 中的值为大写字母的表达式是

A)kk>='A'&&kk<='Z' B)!(kk>='A'||kk<='Z') C)(kk+32)>='a'&&(kk+32)<='z' D)isalpha(kk)&&(kk<91)

7.当变量c的值不为2,4,6时,值也为“真”的表达式是

A)(c==2)||(c==4)||(c==6) B)(c>=2&&c<=6)||(c!=3)||(c!=5) C)(c>=2&&c<=6)&&!(c%2) D)(C>=2&&c<=6)&&(c%2!=1)

8.若变量已经正确定义,有以下程序段 int a=3,b=5,c=7; if(a>b) a=b;c=a; if(c!=a) c=b;

printf(\其输出的结果是

A)程序段有语法错 B)3,4,3 C)3,5,5 D)3,5,7

9.有以下程序

#include main()

{ int x=1,y=0,a=0,b=0; switch(x)

{ case 1: switch(y)

{ case 0:a++;break; case 1:b++;break; }

case 2:a++;b++;break; case 3:a++;b++; }

printf(\ }

程序运行的结果是

A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1 10

有以下程序

#include main()

{ int x=8; for(;x>0;x--)

{ if(x%3) { printf(\ continue; } printf(\ } }

程序运行的结果是

A)7,4,2. B)8,7,5,2. C)9,7,6,4. D)8,5,4,2. 11.

以下不构成无限循环的语句或语句组是 A)n=0; B)n=0;

do{++n;}while(n<=0); while(1){n++;}

C)n=10; D)for(n=0,i=1;;i++)n+=i; while(n);{n--;} 12.

有以下程序

#include main()

{ int a[]={1,2,3,4},y,*p=&a[3];

--p; y=*p; printf(\

}

程序运行的结果是

A)y=0 B)y=1 C)y=2 D)y=3 13.

以下错误的定义语句是

A)int x[][3]={{0},{1},{1,2,3}};

B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D)int x[][3]={1,2,3,4} 14

设有如下程序段

char s[20]=\ p=s;

则执行p=s语句后,一下描述正确的是

A)可以用*p表示s[0] B)s数组中元素的个数和p所指字符串长度相等 C)s和p都是指针变量 D)数组s中的内容和指针变量p中的内容相同 15.

若有定义 int a[2][3];

以下选项中对a数组元素正确引用的是

A)a[2][!1] B)a[2][3] C)a[0][3] D)a[1>2][!1] 16.

有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是 A)gets(&s[0]); B)scanf(\ C)gets(s); D)scanf(\ 17 有以下程序

#include main()

{ int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i; for(i=0;i<12;i++) c[s[i]]++; for(i=1;i<5;i++) printf(\ printf(\ }

程序运行的结果是

A)1 2 3 4 B)2 3 4 4 C)4 3 3 2 D)1 1 2 3 18. 有以下程序

#include

void fun(int *s,int n1,int n2) { int i,j,t; i=n1;j=n2;

while(i

{ int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4,9); fun(a,0,9);

for(k=0;k<10;k++) printf(\ printf(\ }

程序运行得结果是

A)0987654321 B)4321098765 C)5678901234 D)0987651234 19. 有以下程序

#include

void fun(char *a,char *b) { while(*a=='*')a++; while(*b=*a){b++;a++;) } main()

{ char *s=\ fun(s,t); puts(t); }

程序的运行结果是

A)*****a*b B)a*b C)a*b**** D)ab

21. 有以下程序

#include #define N 4

void fun(int a[][N],int b[]) { int i;

for(i=0;i

{ int x[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i; fun(x,y);

for(i=0;i

程序的运行结果是

A)1,2,3,4, B)1,0,7,0, C)1,4,5,9, D)3,4,8,10,

二、写出程序运行结果。

1、已有定义:char c=' ';int a=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b

的值为

2、设变量已经正确定义为整形,则表达式n=i=2,++i,i++的值为 3、若有定义:int k;,以下程序段的输出结果是 for(k=2;k<6;k++,k++) printf(\4、以下程序的输出结果是 #include void swap(int *a,int *b) { int *t; t=a;a=b;b=t; } main()

{ int i=3,j=5,*p=&i,*q=&j;

swap(p,q); printf(\ }

5、以下程序的输出结果是 #include main()

{ int a[5]={2,4,6,8,10},*p; p=a; p++; printf(\ }

三、程序填空。

1、有以下程序段,且变量已正确定义和赋值 for(s=1.0,k=1;k<=n;k++) s=s+1.0/(k*(k+1)); printf(\

请填空,使下面程序段的功能为完全相同 s=1.0;k=1;

while(_[10]_______){ s=s+1.0/(k*(k+1)); _[11]_______;} printf(\

2、以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换.请填空. #include

viod f(int x[],int n) { int p0,p1,i,j,t,m; i=j=x[0]; p0=p1=0;

for(m=0;m{ if(x[m]>i) {i=x[m]; p0=m;} else if(x[m]}

t=x[p0]; x[p0]=x[n-1]; x[n-1]=t;

t=x[p1];x[p1]= _[14]_______; _[15]_______=t; } main() { int a[10],u;

for(u=0;u<10;u++) scanf(\ f(a,10);

for(u=0;u<10;u++) printf(\ printf(\ }

3、以下程序统计从终端输入的字符中大写字母的个数,num[0]中统计字母A的个数,num[1]中统计字母B的个数,其它依次类推.用#号结束输入,请填空. #include #include main()

{ int num[26]={0},i; char c; while((_[16]_______)!='#')

if(isupper(c)) num[c-?A?]+= _[17]_______; for(i=0;i<26;i++)

Printf(\ }

四、写程序。

1、写一个函数实现10个数的和、平均值,主函数调用该函数,输出结果。 2、写一个函数,将两数交换。主函数调用该函数,输出结果。

三、程序填空。

1、有以下程序段,且变量已正确定义和赋值 for(s=1.0,k=1;k<=n;k++) s=s+1.0/(k*(k+1)); printf(\

请填空,使下面程序段的功能为完全相同 s=1.0;k=1;

while(_[10]_______){ s=s+1.0/(k*(k+1)); _[11]_______;} printf(\

2、以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换.请填空. #include

viod f(int x[],int n) { int p0,p1,i,j,t,m; i=j=x[0]; p0=p1=0;

for(m=0;m{ if(x[m]>i) {i=x[m]; p0=m;} else if(x[m]}

t=x[p0]; x[p0]=x[n-1]; x[n-1]=t;

t=x[p1];x[p1]= _[14]_______; _[15]_______=t; } main() { int a[10],u;

for(u=0;u<10;u++) scanf(\ f(a,10);

for(u=0;u<10;u++) printf(\ printf(\ }

3、以下程序统计从终端输入的字符中大写字母的个数,num[0]中统计字母A的个数,num[1]中统计字母B的个数,其它依次类推.用#号结束输入,请填空. #include #include main()

{ int num[26]={0},i; char c; while((_[16]_______)!='#')

if(isupper(c)) num[c-?A?]+= _[17]_______; for(i=0;i<26;i++)

Printf(\ }

四、写程序。

1、写一个函数实现10个数的和、平均值,主函数调用该函数,输出结果。 2、写一个函数,将两数交换。主函数调用该函数,输出结果。

本文来源:https://www.bwwdw.com/article/g6zg.html

Top