C程序设计-复习题

更新时间:2023-09-15 08:06:01 阅读量: 资格考试认证 文档下载

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

《C程序设计》复习题

一、选择题

1、以下叙述中错误的是

A)一个C程序中可以包含多个不同名的函数 B)一个C程序只能有一个主函数

C)C程序在书写时,有严格的缩进要求,否则不能编译通过 D)C程序中主函数必须用main作为函数名

2、设有以下语句char ch1, ch2; scanf(\ 若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是

A)A和B之间用逗号间隔 B)A和B之间不能有任何间隔符 C)A和B之间可以用回车间隔 D)A和B之间用空格间隔 3、以下选项中非法的字符常量是

A)'\\101' B)'\\65' C)'\\xff' D)'\\019' 4、有以下程序 # include

main( )

{ int a=0, b=0, c=0; c=(a- =a-5); (a=b,b+=4); printf(\

程序运行后的输出结果是 A)0,4,5 B)4,4,5 C)4,4,4 D)0,0,0 5、有以下程序 # include main( )

{int a; scanf(\ if(a++<9) printf(\ else printf(\

程序运行时从键盘输入9<回车>,则输出结果是 A)10 B)11 C)9 D)8 6、有以下程序 # include

main( ) {int s=0, n;

for( n=0; n<3; n++ ) { switch(s)

{ case 0: case 1: s+=1; case 2: s+=2; break; case 3: s+=3; default: s+=4;} printf(\程序运行后的输出结果是A)1,2,4, B)1,3,6, C)3,10,14, D)3,6,10, 7、有以下程序 # include main( )

{char a,b,c; b='1'; c='A';

for (a=0; a<6; a++) {if(a%2) putchar(b+a); else putchar(c+a); } }

程序运行后的输出结果是 A)1B3D5F B)ABCDEF C)A2C4E6 D)123456

8、设有如下定义语句 int m[]={2,4,6,8,10}, *k=m;以下选项中,表达式的值为6的是

A)*(k+2) B)k+2 C)*k+2 D)*k+=2

9、fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。在下划线处应填写的是 #include

#define N 5

void fun(int x[N])

{ int m; for(m=N-1;m>=0; m--) scanf( \ A)&x[++m] B)&x[m+1] C)x+(m++) D)x+m 10、若有函数void fun(double a[], int *n) { ...... }

以下叙述中正确的是

A)调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送 B)形参a和n都是指针变量 C)形参a是一个数组名,n是指针变量

1

D)调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组 11、C语言源程序的基本单位是( )。

A.程序行 B.语句 C.函数 D.字符 12、在C语言中,要求运算的数必须是整数的运算符是( ) A./ B.! C.% D.= =

13、设有语句 int a =3;则执行了语句a + = a - = a*a;后,变量a的值( ) A、3 B、0 C、9 D、-12

14、执行下列程序时输入:1234567,程序的运行结果是( ) main( )

{ int x,y; scanf(“-%*2c”,&x,&y); printf(“%d\\n”,x+y); }

A.17 B.46 C.15 D.9 15、下述程序的输出结果是( ) #include void main( )

{int x=-1,y=4; int k; k=++x<=0&&!(y--<=0);

printf(\

A.0,0,3 B.0,1,2, C.1,0,3, D.1,1,2

16、为了避免嵌套的if-else语句的二义性,C语言规定else总是与( )组成配对关系。

A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if

17、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是( ) main( )

{int x; scanf(“%d“,&x); if(x++>5)printf(“%d”,x); else printf(“%d\\n”,x--); }

A.7和5 B.6和3 C.7和4 D.6和4 18、若变量c为char类型,能正确判断出c为小写字母的表达式是( ) A. 'a'<=c<= 'z' B. (c>= 'a')||(c<= 'z') C. ('a'<=c)and ('z'>=c) D. (c>= 'a')&&(c<= 'z') 19、以下程序的输出结果为 main( )

{int i,f1,f2; f1=f2=1; for(i=0;i<4;i++)

{printf(“%d%d”,f1,f2); f1+=f2; f2+=f1; }} A.1 2 3 4 5 6 7 8 B.1 1 2 3 5 8 13 21 C.1 1 3 5 7 9 11 13 D.1 3 5 7 9 11 13 15 20、以下程序段( )。 x=-1; do

{ x=x*x;} while(! x);

A.是死循环 B.循环执行二次 C.循环执行一次 D.有语法错误

21、执行语句 for (i=1;i++<4;) ; 后变量 i 的值是( )。

A.3 B.4 C .5 D.不定 22、在定义int a[5][6];后,第10个元素是( )。

A.a[2][5] B.A[2][4] C.a[1][3] D.a[1][5] 23、定义如下变量的数组:

2

int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下列语句的输出结果是( )

for(i=0;i<3;i++) printf(“%d”,x[i][2-i]);

A.1 5 9 B.1 4 7 C.3 5 7 D.3 6 9 24、设int * p,i;以下正确的语句是( )。

A.*p=10; B.i=p ; C.i=*p; D.p=2*p+1; 25、有以下函数

#include viod func(int n) {int i;

for(i=0;i<=n;i++) printf(“*”); printf(“#”);} main()

{ func(3); printf(“????”); func(4); printf(“\\n”); }

程序运行输出结果是

A ****#????***# B ***#????*****#

C **#????*****# D ****#????*****#

26、下列关系表达式中,结果为“假”的是

A) (3+4)>6 B) (3!=4)>2 C) 3<=4||3 D) (3<4)= =1 27、有以下程序

#include

main( )

{ int a=-2,b=0; while(a++&&++b); printf(\程序运行后的结果是 A)1,3 B)0,2 C)0,3 D)1,2

28、设有定义:int x=0,*p;,立刻执行以下语句,正确的语句是

A) p=x; B) *p=x; C) p=NULL; D) *p=NULL 29、下列叙述中正确的是

A)可以用关系运算符比较字符串的大小

B)空字符串不占用内存,其内存空间大小为0 C)两个连续的单引号是合法的字符常量 D)两个连续的双引号是合法的字符串常量

30、有以下程序

# include

main( )

{ char a='H'; a=(a>'A'&&a<='Z')?(a-'A'+'a'):a; printf(\

程序运行后的输出结果是 A) A B) a C) H D) h

31、有以下程序

# include

int f(int x); main( ) { int a,b=0;

for(a=0;a<3;a++) {b=b+f(a); purchar('A'+b);}} int f(int x) { return x*x+1; }

程序运行后的输出结果是 A) ABE B)BD1 C)BCF D)BCD

32、设有定义:int x[2][3];,则以下关于二维数组x的叙述错误的是

A) x[0]可看作是由3个整型元素组成的一维数组 B) x[0]和x[1]是数组名,分别代表不同的地址常量

3

C) 数组x包含6个元素

D) 可以用语句x[0]=0;为数组所有元素赋初值0

33、设变量p是指针变量,语句p=NULL;是给指针变量赋NULL值,它等价于

A) p= \ B) p='0'; C) p=0; D) p=\34、有以下程序

# include

main( )

{ int a[]={10,20,30,40},*p=a,i;

for(i=0;i<=3;i++) {a[i]=*p; p++; } printf( \ 程序运行后的输出结果是A) 30 B) 40 C) 10 D) 20

35、有以下程序

# include

#define N 3

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

for(i=0;i

for(j=1;j

if(b[i]

main( )

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

for(i=0;i

程序运行后的输出结果是 A) 2,4,8 B) 3,6,9 C) 3,5,7 D) 1,3,5

36、有以下程序(strcpy为字符串复制函数,strcat为字符串连接函数)

# include # include main( )

{ char a[10]=\ strcpy(a+1,b+2);

puts(strcat(a,c+1)); }

程序运行后的输出结果是A) a12xyz B) 12yz C) a2yz D) bc2yz

37、以下选项中,合法的是

A) char str3[]={'d', 'e', 'b', 'u', 'g', '\\0'}; B) char str4; str4=\

C) char name[10]; name=\ D) char str1[5]= \

38、有以下程序

# include

main( )

{ char *s=\ int k=0,a=0; while(s[k+1]!= '\\0') { k++;

if(k%2==0) { a=a+(s[k]- '0'+1); continue; } a=a+(s[k]- '0'); }

4

printf(\ }

程序运行后的输出结果是A) k=6 a=11 B) k=3 a=14 C) k=4 a=12 D) k=5 a=15

39、有以下程序

# include

main( )

{ char a[5][10]={ \ int i,j; char t;

for(i=0;i<4;i++) for(j=i+1;j<5;j++)

if(a[i][0]>a[j][0]){ t=a[i][0]; a[i][0]=a[j][0]; a[j][0]=t;}

puts(a[1]);}

程序运行后的输出结果是A) fwo 40、有以下程序

# include

B) fix

C) two D) owo

int a=1,b=2;

void fun1 ( int a, int b ) { printf(\

void fun2 ( ) { a=3; b=4; }

main( )

{ fun1 (5,6); fun2( ); printf(\

程序运行后的输出结果是 A) 1 2 5 6 B) 5 6 3 4 C) 5 6 1 2 D) 3 4 5 6

二、填空题

1、给定三角形的三边长,求三角形面积。

#include #include int main( )

{ double a,b,c,s,area; a=3.67; b=5.43; c=6.21;

s=(a+b+c)/2; printf(\ printf(\

2、输入一个字符,判别它是否为大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。

#include int main( )

{ char ch; scanf(\

printf(\

3、求

?n!

n?120#include int main( )

{double s=0,t=1; int n;

printf(\

4、输出以下4*5的矩阵。

1 2 3 4 5

5

6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

程序:#include

int main( ) {int i,j,n=0;

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

{ //控制在输出5个数据后换行

printf(\ printf(\

5、输入两个整数,要求输出其中较大者。

#include int main( )

{ int max(int x,int y); int a,b,c; printf(\

scanf(\ printf(\

int max(int x,int y) { int z;

}

6、求100~200之间的全部素数。

# include # include int main( )

{int n,k,i,m=0;

for(n=101;n<=200;n=n+2)

{

for (i=2;i<=k;i++) if (n%i==0) break; if (i>=k+1){printf(\ ;} if(m==0) printf(\ printf (\

7、有一函数,当X<0时,y=-1;x=0时,y=0;x>0时,y=1.编程实现输入一个x值,要求输出对应的y值。

#include

int main( )

{int x,y; scanf(\

else if(x==0) y=0; else y=1; printf(\

8、有一个3*4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在的行号和列号。

#include int main( )

{int i,j,row=0,colum=0,max; int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}}; max=a[0][0]; for (i=0;i<=2;i++) for (j=0;j<=3;j++)

6

{ } printf(\9、有一维数组score,内放10个学生成绩,求其平均值。

#include int main( )

{float average(float array[10]); float score[10],aver; int i; printf(\

for(i=0;i<10;i++) scanf(\ printf(\

aver=average(score); printf(\

float average(float array[10]) {int i; float aver,sum=array[0];

for(i=1;i<10;i++) aver=sum/10; ;} 10、数组a有10个元素,要求输出数组中的全部元素。

#include int main( )

{int a[10]; int *p,i; printf(\ for(i=0;i<10;i++) scanf(\

printf(\ printf(\

11、请写出!(a<=b)等价的C语言表达式 。

12、若有定义语句: char str[]=\,则字符串str在内存中实际占 字节。

13、以下程序运行时从键盘输入:1.0 2.0,输出结果是:1.000000 2.000000,请填空。

# include

main( )

{ double a; float b;

scanf(\ \ printf(\14、 有以下程序

# include main( )

{ int n1=0,n2=0,n3=0; char ch; while((ch=getchar( ))!='!') switch(ch)

{ case '1' : case '3' : n1++; break;

case '2' : case '4' : n2++; break; default: n3++; break;} printf(\

若程序运行时输入01234567!<回车>,则输出结果是 。 15、有以下程序

# include

main( )

{ int i, sum=0;

for(i=1;i<9;i+=2) sum+=i; printf(\

程序运行后的输出结果是 。

16、有以下程序

# include

main( )

{ int d,n=1234; while(n!=0)

7

{ d=n; n=n/10; printf(\

程序运行后的输出结果是 。 17、有以下程序

# include

int k=7;

int *st( int *a) { int *c=&k;

if(*a>*c) c=a; return c;}

main( )

{ int i=3, *p=&i, *r; r=st(p); printf(\

程序运行后的输出结果是 。 18、以下程序的输出结果为 。 # include

#define N 3

#define M(n) (N+1)*n main( )

{ int x; x=2*(N+M(2)); printf(\

19、有以下程序

# include

int fun( int n)

{ if(n==0) return (1); return (fun(n-1)*n);} main( )

{ int t; t=fun(3); printf(\

程序运行后的输出结果是 。

三、编程题

1、编写一程序,判断某一年是否闰年

2、有一数组包含10个元素,要求对元素的值由小到大顺序排列,并输出。 3、编写一程序,实现递归法求n!(要求使用主函数调用子函数)。

4、输入两个整数,然后让用户选择1或2,选1是调用max函数,输出二者中的大数,选2是调用min函数,输出二者中的小数。(请使用指针方法进行编程。) 5、用

?111?1????...公式求?的近似值,直到发现某一项的绝对值小于10?6为止。 43576、用数组来处理求Fibonacci数列问题。

7、将数组a中n个整数按照相反顺序存放,使用指针。

8、输入4个数,找出其中最大的数,用函数的嵌套调用来处理。 9、给出一个百分制成绩,要求输出成绩等级’A’、’B’、’C’、’D’、’E’。90分以上为’A’,80~89分为’B’,70~79分为’C’,60~69分为’D’,60分以下为’E’。

8

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

Top