1.已知;char a; int b,c;表达式"b=2.5*a/b+c"计算结果的数据类型是_____
Achar B double C float D int
2.与条件表达式"(!n)?(c++):(c--)"中表达式(!n)等价的表达式是____
A (n==0) B (n==1) C (n!=0) D (n!=1)
3.已知函数f的定义为:
void f ()
{……}则函数定义中void的含义是_____
A执行函数f后,函数没有返回值
B执行函数f后,函数不再返回
C执行函数f后,可以返回任意类型
D以上三个答案全是错误的
4.已知,int a=1,b=3,c;则执行:c=a>b?++b;则c的值为____
A 1 B 2 C 3 D 4
5.若int k=5;执行语句k+=++k;k的值是_____
A 10 B 11 C 12 D 以上均错
6.下列常量中不能作为C常量的是___
A OxA5 B 2.5e-2 C 3e2 D 0582
7.下列关于C语言的错误的是___
A大写字母和小写字母的意义相同
B不同类型的变量可以在一个表达式中
C在赋值运算符左边的变量和右边的值可以是不同类型
D同一个运算符号在不同的场合可以有不同的含义
8.字符串"\"EOF=-\61\""的长度是____
A 8 B 9 C 14 D 非法字符串
9.执行float x=0,while(x=1)x++;后共循环___次
A有错 B 无数 C 0 D 1
10.float t;表达式t=1,t+5,t++的值是_____
A 1 B 6.0 C 2.0 D 1.0
11已知:
strucl sk
{ int a; float b;}data,*p;
苦有p=&data,则对data中的成员a的正确引用是____
A(*p).data.a B p->a C p->data.a D p.a
二填空题
1.下面程序的输出的结果是_____
long fun (int k)
{if(k==1) retrurn(1);
return (fun(k-1)*k);}
main()
{ printf("%ld\n",fun(5));}
2.下列程序的输出是_____
#include "stdio.h"
main()
{char b[]="Goodbye",*chp=&b[7];
while(--chp>=&b[0] putchar(*chp);}
3若执行以下程序时从键盘上输入3 4 ,则输出结果是___
main()
{int a,b,s;
scanf("&d&d",&a,&b);
s=a;
in (a<b) s=b;
s*=s;
printf("%d\n",s);}
4下列程序段执行的结果是_____
main()
{double a;float b; int c;
c=b=a=20/3;
printf("%d,%f,%f\n",c,b,a);}
5.下列程序的输出是____
main()
{ int x=1,y=2,z=3,t;
while(y<x<z)
{ t=x;x=y;y=t;z-=1;}
printf("%d\n",y);}
6-9。填空,使下列程序具有如下功能,调用swap函数,交换main函数中两个变量x和y的值,使得程序输出x的值为20,y的值为10。
#include<stdio.h>
main()
{float x=10,y=20;
swap(_______);
printf("&f...&f\n",x,y);}
swap(float *x,float *y )
{ float temp;
temp=_______;
_________;
_________;
}
10-11 填空,使下列程序具有如下功能;从终端上读入的10个整数以二进制方式写入一个名为“bi.dat”的新文件中。
#include <stdio.h>
FILE *fp;
main()
{ int i,k;
if(( fp=fopen("bi.dat", "_______"))==NULL)exit(0);
for( i=0;i<10;i++)
{ scanf("%d",&j);
fwrite(_______, sizeof(int),1,fp);}
fclose(fp);}
12-13 下面的递归函数的功能是计算1~n的累加和。填空,使函数正确
sum(int n)
{ if(n<=0)
printf("data error\n");
if(n==1) return ___________;
else ________;
}
参考资料:YASK