C填空题
  1. 若有定义语句:int s=6;则表达式s%2+(s+1)%2的值为[<1>]。
  2. 在C语言中,&作为单目运算符时表示的是[<;取地址>]。
  3. 若已知:a=1,b=2,则表达式:!(a<b)的值为[<0>]。
  4. 若s是int型变量,且s=8,则s%3+(s+1)%3表达式的值为[<2>]。
  5. 若x和n均是int型变量,且x=12,n=5,则执行y=x%=(n%=2)表达式后y的值为[<0>]。
  6. 若a的值为1,则表达式!a||++a的值是[<1>]。
  7. C语言所提供的基本数据类型包括:单精度型、双精度型、整型、[<;字符型>]和枚
举类型。
  8. 设有定义:float x=123.4567;,则执行下列语句后的输出结果是[<123.460000>]
printf("%f\n",(int)(x*100+0.5)/100.0);
  9. 若变量已正确定义为整型,则表达式n=i=2,++i,i++的值是[<3>]。
  10. 在C语言中的赋值表达式中,赋值号左边须是[<;变量>]。
  11. 若有定义语句:int x=3,y=2;float a=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b
的值为[<1>]
  12. C语言中逻辑运算符[<!>]的优先级高于算术运算符。
  13. 运算符%两侧运算量的数据类型必须都是[<;整型>].
  14. C语言源程序的后缀是[<.c>]。
  15. C语言中的标识符只能由3种字符组成,它们是字母、数字、[<;下划线>]。
  16. C语言中用[<;非0>]表示逻辑"真".
  17. 在C语言中,用“\”开头的字符序列称为转义字符,转义字符“\n”的功能是[<
换行>]。
  18. 在C语言中,用关键字[<float>]定义单精度实型变量.
  19. C语言中,用[<0>]表示逻辑值"假"。
  20. C语言源程序经过编译后,生成文件的后缀是[<.obj>]。
  21. C语言源程序连接后生成文件的后缀是[<.exe>]。
  22. 空语句的形式是[<;>]。
  23. 若有定义:int x=3, y=2; float a=2.5, b=3.5; 则下面表达式的值为[<1>]
  (x+y)%2+(int)a/(int)b
  24. 若a是int型变量,则计算表达式后,a的值为[<2>]
  a=25/3%3
  25. 在C语言中的实型变量分为两种类型,它们是float和[<double>]。
  26. 结构化程序由[<;顺序、选择、循环>]三种基本结构组成。
  27. 运算符++和--的运算量必须是[<;变量>]。
  28. 一个int型数据在内存中所占的字节数为[<2>].
  29. 在C语言中,用关键字[<double>]定义双精度实型变量.
  30. 在C语言中,用关键字[<char>]定义字符型变量。
  31. 在Turbo C环境中用RUN命令运行一个C程序时,所运行的程序的后缀是[<.exe>]。
  32. 在C语言中(以16位PC机为例),一个char型数据在内存中所占的字节数为[<1>].
  33. 当a=1,b=2,c=3时,以下if语句执行后,a、b、c中的值分别为[<3、2、2>]。
  if (a>c)
  b=a;a=c;c=b;
  34. 已知字母A的ASCII值为65,下列程序运行后的输出结果是[<6
7 G>]
  main()
  {char a,b;
  a='A'+'5'-'3';b=a+'6'-'2';
  printf("%d%c",a,b);
  }
  35. 若有定义:int a=4,b=5,c=6;接着顺序执行下列语句后,变量b中的值是[<1>]。
  c=(a-=(b-5));
  c=(a%3)+(b=1);
  36. 复合语句在语法上被认为是[<;一条语句>]。
  37. 执行下列程序时,输入1234567<CR>,则输出结果是[<12 34>]。
  #include<stdio.h>
  main()
  { int a=1,b;
  scanf("%2d%2d",&a,&b);printf("%d%d\n",a,b);
  }
  38. 若变量a和b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55
的形式输出,请写出完整的输出语句[<printf("a=%d,b=%d",a,b)>]。
  39. C语句的最后用[<;>]结束。
  40. 变量i,j,k已定义为int类型并有初值0,用以下语句进行输入时
  scanf("%d",&i);scanf("%d",&j);scanf("%d",&k);
  当执行第一个输入语句,从键盘输入:
  12.3<CR>。(<CR>表示回车)
  则变量i,j,k的值分别是[<12,0,0>]。
  41. 下列程序运行后的输出结果是[<10 20 0>]。
  main()
  {int a,b,c;
  a=10;b=20;c=(a%b<1)||(a/b>1);
  printf("%d %d %d\n",a,b,c);
  }
  42. C语言中结束本次循环的语句是[<continue>]。
  43. 以下程序段的输出结果是[<;死循环>]
  int k,n,m;
  n=10;m=1;k=1;
  while(k<=n) m*=2;
  printf("%d\n",m);
  44. 已有定义:char c='';int a=1,b;执行b!=c&&a;后b的值为[<0>]。
  45. 以下程序的输出结果是[<-1>]
  main()
  {
  int x=2;
  while(x--);
  printf("%d\n",x);
  }
  46. 下列程序的输出结果是[<1>]。
  main()
  {int x,a=1,b=2,c=3,d=4;
  x=(a<b)?a:b;  x=(x<c)?x:c; x=(d>x)?x:d;
  printf("%d\n",x);
  }
  47. for(;;)语句相当于while([<1>])。
  48. 下列程序的输出结果是[<1>]。
  main()
  {int a=1,b=2,c=3;printf函数具有计算功能吗
  if(c=a)  printf("%d\n",c);
  else  printf("%d\n",b);
  }
  }
  49. C语言中至少执行一次循环体的循环语句是[<do…while语句>]。
  50. 结构化程序设计规定的三种基本结构是顺序结构,选择结构和[<;循环>]结构。
  51. C语言中终止整个循环的语句是[<break>]。
  52. 若a,b均为整型变量,则以下语句的功能是[<;交换a,b的值>]
  a+=b; b=a-b; a-=b;
  53. 在C语言中,表示逻辑"真"值使用整型值[<1>]
  54. 设int a[2][3]={{5},{6}}; 则数组元素[<a[0][0]>]的值为5。
  55. 若有定义:double a[5], 则a数组的长度为[<5>]。
  56. 若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}}; 则初始化后,a[1][2]的值为
[<0>]。
  57. 如果在程序中调用了strcat函数,则需要预处理命令[<#include <string.h>>]。
  58. 欲将字符串S1复制到字符串S2中,其语句是[<strcpy(s2,s1)>]。
  59. C 语言中数组的下标总是从[<0>]开
始,不可以为负数。
  60. strcmp("how","How")的值是[<32或者>0>]
  61. 若有定义int a[3][5];则排列在数组中的第九个元素是[<a[1][3]>]
  62. C语言中构成数组各个元素具有相同的[<;数据类型>]。
  63. 字符串是以[<\0>]为结束标志的一维字符数组。
  64. 若有定义:int b[2][3], 则b数组中列下标的上限为[<2>]。
  65. C语言中字符串结束的标志是[<'\0'>]
  66. 设int a[2][3]={{2},{3}}; 则数组元素[<a[1][0]>]的值为3。
  67. strlen("How are you\n")的值是[<12>]
  68. 若有定义:double x[3][5], 则x数组中行下标的上限为[<2>]。
  69. 写出一个名为s的单精度实型一维数组,长度是6,所有元素初值均为0,其数组定
义语句是[<float s[6]={0};>]
  70. 设有定义语句:int a[][3]={{0},{1},{3}},则数组元素a[1][2]是[<0>]
  71. 若自定义函数要求返回一个值,则应在该函数体中有一条[<;带表达式的return>]语
句.
  72. 若用数组名作为函数调用的实参,传递给形参的将是数组的[<;首地址>]。
  73. C语言规定,简单变量作实参时,和它对应的参数之间的传递方式是[<;值传递>]。
  74. 若自定义函数要求不返回一个值,则应在该函数说明时加一个类型符[<void类型说
明符>]。
  75. 全局的外部变量和函数体内定义的局部变量重名时,[<;函数的局部>]变量优先。
  76. 函数中的形参和调用时的实参都是变量时,传递方式为[<;值传递方式>]。
  77. C程序中的一个函数由两部分组成,即声明部分和[<;执行部分>]
  78. 函数的形式参数的作用域为[<;定义它的函数>].
  79. 函数中的形参和调用时的实参都是数组名时,传递方式为[<;传地址方式>]。
  80. C语言程序执行的开始处是[<main函数>]
  81. 假定在同一个编译单位中,函数a()调用了函数b(),则对函数b()不需要说
明的情况有下列两种:b()函数的定义地点在a()函数定义地点之前和[<b()函数为INT
型函数>]。
  82. 函数可以嵌套调用,但是不可以嵌套[<;定义>]。
  83. 为了保证被调用函数不返回任何值,其函数定义的类型应为[<void>]
  84. 若有定义int i; int *p =&i;则*&i等价于[<i>]。
  85. 指针变量作为函数的参数时,实参与形参之间传递的是[<;地址>]。
  86. 语句int *p中,指针变量名为[<p>]。
  87. 执行语句int i=2; int *p; p=&i;后,*p的值为[<2>]。
  88. 设有char *a="ABCD",则printf("%c", *a)的输出是[<A>]。
  89. 若d是已定义的双精度变量,再定义一个指向d的指针变量p的代码是[<double *p
= &d>]。
  90. 设int a[10],*p = a; 则对a[3]的引用可以是p[3]和*(p[<+3>])
  91. "*"称为[<;取内容运算符>]运算符.
  92. 设有char *a="ABCD
",则printf("%s", a)的输出是[<ABCD>]。
  93. "&"称为[<;取地址运算符>]运算符。
  94. 以下程序的输出结果是[<3 5>]。
  #include<stdio.h>
  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("%d %d",*p,*q);
  }
  95. 若有定义int i; int *p =&i;则&*p等价于[<p>]。
  96. 以下程序的输出结果是[<4>]。
  #include<stdio.h>
  main()
  {
  int a[5]={2,4,6,8,10},*p;
  p=a;p++;
  printf("%d",*p);
  }
  97. 有下列程序段,且变量已正确定义和赋值:
  for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));
  printf("s=%f\n\n",s);
  请填空,使下列程序段的功能与之完全相同。
  s=1.0;k=1;
  while([<k<=n>]) {s=s+1.0/(k*(k+1));[<k++>];}
  printf("s=%f\n\n",s);
  98. 下列程序中,fun()函数的功能是计算x^2-2x+6,主函数中将调用fun() 函数计算:
  y1=(x+8)^2-2(x+8)+6
  y2=sin^2(x)-2sin(x)+6
  请填空。
  #include "math.h"
  double fun(double x) {return(x*x-2*x+6);}
  main()
  { double x,y1,y2;
  printf("Enter x:");
  scanf("%lf",&x);
  y1=fun([<x+8>]);
  y2=fun([<sin(x)>]);
  printf("y1=%lf,y2=%lf\n",y1,y2);
  }
  99. 下列程序用于判断a、b、c能否构成三角形,若能输出YES,否则输出NO。请填空。
  main()
  {float  a,b,c;
  scanf("&f&f&f",&a,&b,&c);
  if([<(a+b>c)&&(a+c>b)&&(b+c>a)>]) printf("YES\n");
  else  printf("NO\n");
  }
  100. 从键盘输入一个字符,并将其输出,完成填空。
  main()
  {char c;
  c=[<getchar()>];
  putchar[<c>];
  }
  101. 下列程序的输出结果是[<0235>]
  main()
  {int k=5,n=0;
  do
  {switch(k)
  {case 1: case 3:n+=1;k--;break;
  default:n=0;k--;
  case 2:  case 4:n+=2;k--;break;
  }
  printf("%d",n);
  }while(k>0&&n<5);
  }
  102. 下列程序的输出结果是[<2,2,0>]
  main()
  {int a=-5,b=1,c=1;
  int x=0,y=2,z=0;
  if(c>0) x=x+y;
  if (a<=0)
  { if(b>0)
  if(c<=0) y=x-y;
  }
  else if (c>0) y=x-y;
  else z=y;
  printf("%d,&d,&d\n",x,y,z);
  }
  103. 下列程序的输出结果是[<25>]
  main()
  {int i;
  for(i=1;i<=10;i++)
  { if((i*i>=20)&&(i*i<=100))
  break;
  }
  printf("%d\n",i*i);
  }
  104. 下列程序的功能是:将输入的正整数按逆序输出。例如,如输入135则输出531,
请填空。
  main()
  {int n,s;
  scanf("%d",&n);
  do
  {s=n%10;printf("%d",s);[<n=n/10>];}
  while (n!=0);
  }
  105. 下列程序的功能是计算:s=1+12+123+1234+12345.请填空。
  main()
  {int t=0,s=0,i;
  for(i=1;i<=5;
i++)
  {t=i+[<t*10>];s=s+t;}
  printf("%d\n",s);
  }
  106. 输出已知数组中的所有偶数, 完成填空。
  main()
  {int  a[10]={0,1,2,3,4,5,6,7,8,9},i;
  for(i=0;i<10;i++)
  if [<a[i]%2==0>]
  printf(“%d\n”,[<a[i]>]);
  }
  107. 输入数组的值,并输出, 完成填空。
  main()
  { int  a[6],i;
  for(i=0;i<6;i++)
  scanf(“%d”,[<&a[i]>]);
  for(i=0;i<6;i++) 
  printf(“%d\n”,[<a[i]>]);
  }
  108. 下列程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减
前项之差存入数组b,并按每行4个输出,请填空。
  main()
  {int a[10],b[10],i;
  for(i=0;i<10;i++)
  scanf("%d",&a[i]);
  for(i=1;i<10;i++)
  [<b[i-1]=a[i]-a[i-1];>]
  for(i=1;i<10;i++)
  {printf("%d",b[i-1]);
  if(i%4==0) printf("\n");
  }
  }
  109. 有下列程序:
  int sub(int n) {return (n/10+n%10);}
  main()
  { int x,y;
  scanf("%d",&x);
  y=sub(sub(sub(x)));
  printf("%d\n",y);
  }
  若运行时输入:1234<CR>,程序的输出结果是[<10>]。
  110. 下面程序将二维数组a的行和列互换后存放到一个二维数组b中,请填空。
  main()
  {int a[2][3]={{1,2,3},{4,5}},b[3][2],i,j;
  for(i=0;i<2;i++)
  {
  for(j=0;j<3;j++)
  [<b[j][i]=a[i][j];>]
  }
  }
  111. 下列程序的功能是:求出数组x中各相临两个元素的和依次存放到数组a中,
然后输出。请填空。
  main()
  {int x[10],a[9],i;
  for(i=0;i<10;i++)
  scanf("%d",&x[i]);
  for([<i=1>];i<10;i++)
  a[i-1]=x[i]+[<x[i-1]>];
  for(i=0;i<9;i++)
  printf("%d",a[i]);
  printf("\n");
  }
  112. 从键盘输入一个小写字母,改用大写字母输出,完成填空。
  main()
  {char c1,c2;
  c1=[<getchar()>];
  c2=[<c1-32>];
  putchar(c2);}
  113. 下列程序计算1到100的整数的累加和,请完善程序
  main()
  {int a,sum=[<0>];
  a=1;
  while([<a<=100>])
  {sum+=a;
  a++;}
  printf(“sum=%d\n”,sum);
  }
  114. 下列isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否
则返回0。请填空。
  int isprime(int a)
  {int i;
  for(i=2;i<=a/2;i++)
  if(a%i==0)[<return(0)>];
  [<return(1)>];
  }
  115. 以下程序功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最
低成绩,当输入负数时结束输入。请填空。
  main()
  {
  float x,amax,amin;
  scanf("%f",&x);
  amax=x;
  amin=x;
  while[<x>=0>]
  {
  if(x>amax) amax=x;
  if[<x<amin>] amin=x;
  scanf("%f",&x);
  }
  printf("\namax=%f\namin=%f\n",amax,amin);
  }
  116. 以下