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. 以下
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论