C语言练习题之二
1.在一个C语言源程序中,必不可少的是___________ 。
2.下列叙述中正确的是__________ 。
A.main函数必须出现在其他函数之前 B.main函数中至少必须有一条语句
C.C程序总是从main函数的第一条语句开始执行
D.C程序总是在执行完main函数的最后一条语句后结束
3.以下标识符中不能用做变量名或自定义函数名的是_______。
A.main B._123 C._float D.sizeof
4.下列表示中,不可作为常数的是_______ 。A.020 B.1UL C. '0x41' D.0xfe
5.设有声明“int value='5';”,则执行下列选项的赋值语句后,value的值不等于5的是___。
A. value=value-'0'; B. value=value-0x30;C. value=value-49; D. value=value-'\060';
6.设有定义和声明如下:
#define d 2
int x=5;float y=3.83;char c='d';
以下表达式中有语法错误的是____。
A.x++ B.y++ C.c++ D.d++
7.若有声明和初始化“int x=32767;”,则x+1的值为___________。
8.若有声明和初始化“long x=32767;”,则x+1的值为___________。
9.已有声明“int a=3,b=3,c=2;”,以下选项中值为0的表达式是________ 。
A. !a && !b && c B.!a ||!b ||c C.a==b &&b>=c D.a>=b&& b>c
10.若有声明“int x=4,y=3;”,则表达式“x<y?x++:y++”的值是________。
A.2 B.3 C.4 D.5
11.设有声明“int a=3,b=4;float x=4.5,y=3.5;”,则表达式“(float)(a+b)/2+(int)x%(int)y”的值是___ 。
12.若有声明“int i=7;float x=3.1416;double y=3;”,表达式i+'a'*x+i/y值的类型是_________ 型。
13.设有声明“float a=l.23456;int i;”,欲将a中的数值保留小数点后两位, 第三位进行四舍五入运算,能实现该功能的表达式是_________。
A. i=a*100+0.5,a=i/100.0 B.a=(a*100+0.5)/l00.0C. a=((int)a*i00+0.5)/100.0 D.a=(a/100+0.5)/100.0
14.若有声明“int a=15,b=20,c=25,e;”,则执行语句“e=a>b?--c:++c;”后变量e的值是_____。
15.以下C语言的运算符中,其中优先级最高的运算符是________ 。
A. = B.&(位与) C.== D.&&
16.数学公式在程序中正确的表示形式为______ 。
A. sqrt(a)/2*b B. sqrt(a)/2/b C. sqrt(a)/2b D.sqrt a/(2*b)
17.与数学式 等价的C语言的表达式是______________ 。
18.若有声明“float f=123.45678;”,则执行语句“printf("%.3f",f);”后,输出结果是_____ 。
A. 1.23e+02 B.123.457 C.123.456780 D.1.234e+02
19.已知程序中有声明“int a; long b;”,若需要接收从键盘输入的电话号码字符串(010)64782656(其中010为区号,64782656是电话号码),并将其中的区号、电话号码分别存储到变量a、b中,则实现该功能的输入语句为“scanf("______",&a,&b);”。
20.以下关于C语言输入输出函数的叙述中错误的是_________ 。
A.printf函数输出字符串时与puts函数一样,以‘\0’结束 B.scanf函数可以输入空格
C.gets函数可以输入空格 D.getchar函数没有参数,scanf和gets都有参数
21.若int类型数据占2个字节,则以下语句的输出为令数组全部的值为0________ 。
int k=-1;
printf(“%d,%u\n”,k,k);
22.关键字case和default只能在__________ 语句中出现。
23.以下程序运行时输出结果的最后一行是__________。
void main()
{ int a=1,b=1,i;
for(i=1;i<=2;i++)
{ a=a+b; printf("%d/%d,",b,a);
b=a+b; printf("%d/%d\n",a,b); }
printf("\n");
}
24.以下程序运行后,输出结果的第一行为______________,第二行为_________。
void main()
{ int w=0,i;
for(i=0;i<3;i++)
switch(w++)
{ case 0: case 1:
case 2:
case 3:printf("%d\n",w++); }
}
25.以下程序运行时输出结果是______________。
void main()
{ int i,sum=0;
for(i=0;i<5;i++)
{ switch(i)
{ case 0:
case 1:sum++;
case 3:sum++; break;
case 4:sum--; }
}
printf("%d\n",sum);
}
26.若有数组A和B的声明“static char A[]="ABCDEF",B[]={'A','B','C','D','E','F'};”,则数组A和数组B的长度分别是_________ 。A. 7,6 B.6,7 C. 6,6 D.7,7
27.设有声明“int p[10]={1,2},i=0;”,以下语句中与“p[i]=p[i+1],i++;”等价的是______。
A.p[i]=p[i++]; B.p[++i]=p[i]; C.p[++i]=p[i+1]; D.i++,p[i-1]=p[i];
28.执行以下程序段后,number的值是________。
char str[]="Hello!"; int number;
number=sizeof(str);
29.若有说明“int a [][4]={1,2,3,4,5,6,7,8,9};”,则数组a第一维的大小是______。
30.以下程序运行时,输出结果的第一行为________,第三行为______,第五行为______。
#define N 8
void main()
{ int i,j,pa[N]={1};
printf("%5d\n",pa[0]);
for(i=1;i<N;i++)
{ pa[i]=1;
for(j=i-1;j>0;j--) pa[j]=pa[j]+pa[j-1];
for(j=0;j<=i;j++) printf("%5d",pa[j]);
printf("\n");}
}
31.以下程序运行时输出结果的第一行是______________,第三行是_________。
void main()
{ int i,j,a[3][3];
for (i=0;i<3;i++)
for(j=0;j<3;j++)
if(i<j) a[i][j]=1;
else a[i][j]=i-j+1;
for (i=0;i<3;i++)
{ for(j=0;j<3;j++) printf("%4d",a[i][j]);
printf("\n"); }
}
32.以下程序执行时,输出结果的第一行是_____,第二行是______,第三行是______ 。
#define N 20
main()
{ int i,j,k,n,arr[N][N];
k=1; i=0; n=3;
while (i<n/2)
{ for(j=i;j<n-i;j++) arr[j][n-i-1]= k++;
for(j=n-i-2; j>=i; j--) arr[n-i-1][j]= k++;
for(j=n-i-2; j>=i;j--) arr[j][i]= k++;
for(j=i+1;j<=n-i-2;j++) arr[i][j]= k++;
i++; }
if(n%2) arr[i][i]=k;
for(i=0;i<n;i++)
{ for(j=0;j<n;j++ ) printf("%4d",arr[i][j]);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论