C语言100练习题

更新时间:2023-12-08 16:36:01 阅读量: 教育文库 文档下载

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

C语言百道练习题

一、填空题

1. C源程序的基本单位是【函数】。

2. 一个C源程序至少应该包含一个【main函数】。

3. 在一个C源程序中,注释用的分界符是【//】或【/* */】。

4. 在C语言中,标准输入操作的库函数是由【scanf()】完成的,标准输出操作的库函数是

由【printf()】完成的。

5. 在C语言中,标识符只能由【字母】、【数字】和【下划线】组成,且首字符必须是【字

母或下划线】。

6. x为double类型,代数式【sqrt(pow(sin(x),2.5))】。

7. 数学中一元二次议程的求根公式的C语言表达式为 (-b+sqrt(b*b-4*a*c) )/(2*a) 或(-b-sqrt(b*b-4*a*c) )/(2*a) 。

8. 梯形的面积公式的C语言表达式为 1.0/2*(a+b)*h 。

9.已知:char a=' a',b=' b',c=' c',i;(已知a的ASCII码值为97)则表达式i=a+b+c的值为 294 。

10.C语言中,指针运算符有 * 和 & 两个。

11.已知int a=12,n=5;则:表达式运算后a和n的值各为 0,0 。

a+=a a-=2 a*=2+3 a/=a+a n%=(n%=2) a+=a-=a*=a

12.复合语句是用一对 { } 界定的语句块。

13.一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令: #include

14. C语言提供三种逻辑运算符,按优先级高低它们分别是 ! , && , || 。 15. 将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式 (y%4==0&&y0!=0) ||(y@0==0) 。

16. 已知A=7.5,B=2,C=3.6,表达式A>B && C>A || AB的值是 F/假 。 17. C语言三个循环语句分别是 while 语句, do…while 语句和 for 语句。 18. 在C语言中,二维数组的元素在内存中的存放顺序是 从上到下,从左到右 。 19. 若有定义:double x[3][5],则x数组中行下标的下限为 0 ,列下标的上限为 4 。 20. 若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]的值为 0 ,a[2][1]得到的值为 8 。

21. 欲将字符串S1复制到字符串S2中,其语句是 strcpy(s1,s2) 。 22.以下程序段的输出结果是_11____:

- 1 -

的C语言表达式是

 int i=9;  printf(\

23.以下程序运行后的输出结果是_25 21 37______。

main() {

int a,b,c; a=25; b=025; c=0x25;

printf(\

}

24.以下程序运行后的输出结果是__24____。

main() {

int p[7]={11,13,14,15,16,17,18}; int i=0,j=0;

while(i<7 && p[i]%2==1)

j+=p[i++];

printf(\

}

25. 以下程序运行后的输出结果是__21_____。  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;

 }

 printf(\  }

26. 以下程序运行后的输出结果是_gae____。

main () { char a[]=\ char *p1,*p2; int k; p1=a; p2=b;

for(k=0;k<=7;k++)

if(*(p1+k)==*(p2+k)) printf(\

- 2 -

}

27.以下程序运行后的输出结果是_*2*4*6*8*______。

main() { char a[]=\ p=a; while(*p) { if(i%2==0) *p='*'; p++;i++; } puts(a); }

28.以下程序中, for循环体执行的次数是__4___。

 #define N 2  #define M N+1

 #define K M+1*M/2  main()  {

int i;

 for(i=1;i<=k i++){ ... }  ...  }

29. 通过函数求f(x)的累加和,其中f(x)=x2+1。

main() {

printf(\}

SunFun(int n) {

int x,s=0;

 for(x=0;x<=n;x++)

s+=F(__x______);

 return s; }

F( int x) {

return ___x*x+1_________; }

30. 以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请 填空。  main()

 { int i,a[20],sun,count;  sum=count=0;

 for(i=0;i<20;i++) scanf(\

 fro(i=0;i<20;i++)

 {

if(a[i]>0)

  {

count++;

  sum+= _a[i]_____ ;

}

 }

- 3 -

 printf(\

}

31.若变量a、b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的输出语句 printf(“a=%d,b=%d\\n”,a,b);

32.已知定义了int x,y,z;,通过键盘录入数据时使用了如下语句scanf(\&x,&y,&z); 要求能够正确地将10、20、30赋值给x、y、z的录入格式为: x=10, y=20,z=30(回车)

33.若从键盘上输入58,则以下程序输出的结果是 585858 。

void main() {

int a;

scanf(\

if(a>50) printf(\ if(a>40) printf(\ if(a>30) printf(\}

34.若有以下程序

void main() {

int a=4, b=3, c=5, t=0; if(a

printf(\}

执行后输出结果是 5 0 3 。

35.下列程序的功能是: 输出a、b两个数中较大者 。

void main() {

int a, b, t;

scanf(\ if(a>b) t=a; else t=b;

printf(\

}

36.以下程序运行后输出的结果是 1 。

void main() {

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

if(c=a) printf(\ else printf(\}

37.以下程序运行后输出的结果是 -4 。

void main() {

int i=0, j=1, k=2; if(!i) k-=1; if(j) k-=2; if(k) k-=3;

printf(\ }

38.以下程序运行后输出的结果是 1 。

void main() {

int i=1, j=2, k=3;

- 4 -

if(k=i) printf(\ else printf(\

}

39.以下程序运行后输出的结果是 12 。

void main() {

int i, j,sum=0; for(i=1;i<5;i++) for(j=1;j<4;j++) sum++; printf(\}

40.以下程序运行后输出的结果是 16 。

void main() {

int x=15;

while(x>10 && x<50){ if(x/3){ x++; bgreak; } x=x+2; }

printf(\}

41.下列程序段的功能是: 输出1~100间能被 4整除的数。

void main() {

int i;

for(i=1;i<=100;i++){ if(i%4!=0) continue; printf(\}

42.有以下程序,运行时如果从键盘上输入Y?N?(回车),则输出结果是 X 。

#include void main() {

char c;

while((c=getchar())!='?') putchar(--c); }

43.以下isprime函数的功能是判断形参a是否为素数,如果是素数,函数返回1,否则返回0。请填空。

int imprime(int a) {

int i;

for(i=2;i

n3x

44.与数学式对应的C语言表达式是:3*pow(x,n)/(2*x?1)。

2x?1

45.以下程序中,函数fun的功能是计算x2-3x+6,主函数中将调用 增收函数计算:

2

Y1=(x+8)-2(x+8)+6 Y2=sin2x-2sinx+6

- 5 -

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

Top