C语言复习资料答案

更新时间:2023-12-13 05:57:01 阅读量: 教育文库 文档下载

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

一、基础知识填空题

1、一个C程序由若干函数构成,其中有且只能有一个 主 函数。

2、C语言中的基本数据类型有整形、字符型、 实型 和 枚举类型 。 3、若变量a是数字字符,将其转换成相应的数值用什么语句 (int) a 强制转换句 。 4

将C

3、C语言程序是由 C 组成的。 (A).子程序 (B) .过程 (C) .函数 (D)主程序和子程序

4、C源程序中不能表示整形常数的数制是 ( A )

(A)二进制 (B) 八进制 (C) 十进制 (D)十六进

5.当定义一个共用体变量时系统分配给它的内存是( B )。 A. B.

各成员所需内存的总和

成员中占内存量最大者所需的容量

s[i];

if ( s[i] != ‘ ‘ ) s[j++] =

_ s[j]=’\\0’__ ; printf (“%s\\n”,s); } 4.

从键盘中输入一个数,将其插入到一个升序数组中,保持数组任然按升序排列,将程序补充完整。 void main() { int data,temp,k; static

int

a[9]={-10,2,4,8,10,15,25,50}; printf(“\\nEnter a data:”); y?sin(ax)?ln(a?x)?eax成

C. 结构中第一个成员所需内存量 y=sin(a*x)+log(a+x)+exp(a*x) D. 结构中最后一个成员所需内存量 5、设x、t均为int型变量,则执行语句“x=10;t=x&&x>10;”后,t的值为 0 。 8、若有定义struct st{

char name[20]; float

score; int age;}; 则sizeof

(struct

st

)

26 。

1.

在C语言中,关键字都用( 小写 ){大写或小写};C语言是通过有且仅有一个( main函数 (主函数) )。 2.

C语言中构造类型数据有哪三种:( 数组型 )、( 结构体类型 )、( 共用体类型 )。 3. 若k=sizeof(int),I=sizeof(float),则k=(2 ),I=( 4 )。

4.

符号’&&’是( 逻辑 )运算

符,&a是指(a的地址 )。 5. 能表述2020 &&x<30 ||x<-100 )。 6. 若有以下程序段: int t,x=2,y=1; t=(x=0)&&(y=0);则t= 0 ,x= 0,y= 1 7. 若有以下程序片段: char str[] = “ab\\\\\\n\\0””; printf(“%d”,strlen(str)); 则输出结果是( 4 )。 如果缺省函数的类型,编译器默认它为_____int_________类型。 3.当函数的类型和返回值的类型不一致是,则以____函数________类型为准。

4.C语言中数据类型分为基本数据类型、构造数据类型、___指针____类型以及___空__类型。 5.已知x=3,y=2,循环while(x == y){x--; continue; } 执行 0 次。 6. 若有定义union student { char name[20]; float score; }; 则sizeof (union student ) 为 20 。 二、单选题

1、下面哪个是非法的变量名: D (A)wabs (B)E3 (C)true

(D)5ac

2、下列常数中哪个是不符合C语法规定的

A

(A)‘\\’ (B)‘\\101’ (C)

0x1e (D)1.e5

6.判断char类型的变量cl是否为数字字符的正确表达式为( B )

A.(cl>=0)&&(c1<=9) B .(c1>='0')&&(c1<=’9’)

C.'0'<=c1<=

9'

D .(c1>='0')||(cl<='9’) 10. 设有如下枚举类型定义: enum

language{Basic,Assembly,Ada=100,COBOL,Fortran}; 请问枚举变量

Assembly

的值是

( A )。

(A)1 (B)0 (C)101

(D)99

执行语句for(i=0;i<1O;i++);后,变量i的值为( A )

A. 1O B . 9 C . O

D . 1

15.下列语句的循环次数为( A )

int x=5;

while(x){x--;break;}

A. 1; B .5 C .6

D .无限次

三、程序阅读填空题

写出下面程序运行的结果: 11 19 30 1

1.void main()

{int a=10,b=20,c=30,d;

d=++a<=10 || b-->=20 || c++ ;

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

}

2、写出下面程序运行的结果: 3 , 1 ,0 ,0 void main()

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

printf(“%d,%d,%d,%d\\n”,a=b=c,a=b==c,

a==(b=c),a==(b==c));

}

下列程序的功能是计算1-3+5-7+?-99+101

的值,请在______处填空。

main()

{ int i , t = 1 ,s = 0;

for ( i = 1 ; i <= 101 ; i +=2 )

{t=t*i; s = s + t ; t=_-t_/i; }

printf (“ %d \\n “, s ) ; }

10、下列程序的功能是将字符串s中所有的空格字符删去,请在______处填空。 main() { char *s = “Our teacher teaches C language” ; int i , j ; for ( i=j=0 ; s[i] !=’\\0’ ; i++ )

scanf(“%d”,&data); a[8]=data__;

for(k=8;__k>=0_;k--) if(a[k]

{_temp=_a[k]_; a[k]=a[k-1];

a[k-1]=temp; }

else ___break___; for(k=0;_k<=8__;k++) printf(“}”,a[k]); }

下面程序运行的结果是____(1)x=10 (2)x=25 (3)_x=100 。 static int x=5;

void main ()

{ void f1(); void f2(); int x=10; f1(); f2(); printf(“x(1)=%d\\n”,x); } void f1() { x+=20; printf(“x(2)=%d,”,x); }

void f2()

{ int x=100;

printf(“x(3)=%d,”,x);

} ?101.求n!(函数mm用来求阶乘),请将

程序补充完整:1 void main() { long s=0,i,mm(int k); for(i=1;i<11;i++)

s=s+mm(i);

printf(“%ld”,s);

}

long mm(int k)

{ long t=1,j;

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

t=t*j ;

return(t) ;

} 程序实现给数组a赋值,并通过指针的方式输出数组a的值,请将程序补充完整。

void main()

{ int a[6],i;

_int *p=a____;

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

scanf(“%d”,__&p[i]__________);

p=a;

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

printf(“=”,____p[i]__);

printf(“\\n”); }

四.编程题

1.从键盘输入一个正整数n,求n! #include”stdio.h” void main() { int i , n; long t=1; scanf(“%d”,&n); for(i=1;i<=n;i++) t=t*i ;

printf(“n!=%ld\\n”,t) ; }

2.输出100——999内的所有水仙花数。水仙花数是指3位数的各位数字的立方和等于这个位数本身。例如,153=1*1*1+5*5*5+3*3*3 #include”stdio.h” void main() {

int x,y,z;

printf(“The result is : “); for(x=1;x<=9;x++) { for(y=0;y<=9;y++) { for(z=0;z<=9;z++)

{ if(x*x*x+y*y*y+z*z*z==100*x+10*y+z) printf(“%d\\n”,100*x+10*y+z);}}}}

结果 :153 370 371 407

3.一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写程序找出 1—5000中的所有完数。 #include”stdio.h” void main() {

int m , n , i ,t=0; for(n=2;n<=5000;n++) { t=0;

for(m=1;m

printf(“]\\n”,n); }}

结果 6 28 496 4.

int

a[10]={10,2,4,1,3,7,9,5,6,8};请用选择排序法将数组a中的元素按升序排列,并输出排序后的结果 #include”stdio.h” void main() {

int

i,temp,k,j,a[10]={ 10,2,4,1,3,7,9,5,6,

8};

for(i=0;i<9;i++) { k=i ;

for(j=i+1;j<10;j++) { if(a[k]>a[j]) k=j; } if(k!=i)

{ temp=a[i];a[i]=a[k];a[k]=temp ;}} for(i=0i<10;i++)

printf(“]\\n”.a[i]); }

结果 1 2 3 4 5 6 7 8 9 10

5. 从键盘输入两个整数m和n,编程求m和n的最大公约数以及最小公倍数。 #include”stdio.h” void main() { int m,n,r,t,k; scanf(“%d,%d”,&m,&n); k=m*n ; if(m>n) r=m%n;

else r=n%m; { if(n%m = =0) if(r!=0)

prime=0 ;} { m=n;n=r;r=m%n;}

if(prime)

printf(“yue shu =%d”,n) { i++ ; printf( “ %d \\n” , m);} t=k/n;

printf(“bei shu =%d”,t); printf (“\\n”); }

6. 请编写函数 sum(a,n), 求 } } sn=a+aa+aaa+....+aa...aa(n个a) 的值,

并在主函数中调用该函数。其中 a 是一个数 字. 例如, 若

a=2, n=5

时:

Sn=2+22+222+2222+22222, 其值应为24690. 根据下列已完成的部分, 完成未完成部分(注: 在函数 sum 中不能定义新的变量, 可不用已定义的某些变量). long sum(int a, int n) { long sn, tn; int count; ..........; return(sn);

}

#include”stdio.h” long sum(int a, int n) { long sn=0, tn=0 ;

int i , count=0 ; scanf(“%d,%d”,&a,&n); for(i=0,i

tn=(10*tn+a) ; sn=sn+tn ; count++; }

return(sn) }

void main() { long s; int b,c ; s=sum(b,c); printf(“%ld”,s); }

7.编程求一个学生n门课程的平均成绩。 #include”stdio.h”

float average(int *p,int n) {int i; void main() { int i ; float ave=0;

printf(“Input : n”); scanf(“%d”,&n); for(i=0;i

{ scanf(“%d”,&p[i]);ave=ave+p[i];} aves/=n; return(ave); }

void main(0 { int *a,b; float t; t=average(a,b); printf(“%f\\n”,t); }

8.求10以内的素数 #include”stdio.h” void main() {

int m , n , i=1 , prime ; for(n=2;n<=10;n++) { prime=1; for(m=2;m

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

Top