一、选择题
(1)能将高级语言程序转换成目标语言程序的是__ C____。
A)调试程序 B)解释程序 C)编译程序 D)编辑程序 (2)__A____是构成C语言程序的基本单位。
A)函数 B)过程 C)子程序 D)子例程 (3)可以在C语言中用做用户标识符的是__B___。
A)void B)as_b3 C)for D)2c define _123 -abc Do WORD If cas SIG (4)若有以下类型说明语句:
char w; int x; float y, z;
则表达式w*x+z-y的结果为__D___类型。
A)float B)char C)int D)double (5)main()
{ float x=123.456;
printf(\ }
以上程序输出的结果是___D___。
A)123.4 B)123.5 C)123.45 D)123.46 (6)下面语句的输出结果是___C___。
printf(\
A)14 B)8 C)5 D)输出项不合法,无正常输出 (7)下列程序的输出结果是__B____。 main()
{ int a=0,b=0,c=0;
if(++a>0| ++b>0) ++c;
printf(\ }
A)a=0,b=0,c=0 B)a=1,b=1,c=1 C)a=1,b=0,c=1 D)a=0,b=1,c=1 (8)下列程序的输出结果是__B____。 main() { int i;
for(i=1;i+1;i++)
{ if(i>4) {printf(\ }
printf(\ }
A)55 B)56
C)程序错误,没有输出 D)循环条件永远为真,死循环 (9)下列程序的输出结果是___A___。 #define A 100 main()
{ int i=0,sum=0;
do{ if(i==(i/2)*2) continue; sum+=i; }while(++i
printf(\ }
A)2500 B)2050 C)4 D)0 (10)下列程序的输出结果是__D____。 main()
{ int i=3; switch(i) { case 1:
case 2:printf(\ case 3:
case 4:break;
default:printf(\ } }
A)0 B)3 C)OK D)没有任何输出 (11)下列程序执行后的输出结果是__C____。
C语言程序设计模拟题(1)
main()
{ int m[][3]={1,4,7,2,5,8,3,6,9}; int i,k=2;
for(i=0;i<3;i++)
{ printf(\ }
A)456 B)258 C)369 D)789
(12)设已定义i和k为int类型变量,则以下for循环语句__B____。 for(i=0;k=-1,k=1;i++,k++) printf(\
A)判断循环结束的条件不合法 B)是无限循环
C)循环一次也不执行 D)循环只执行一次 (13)下面程序的输出结果是__C____。 unsigned fun(unsigned num) { unsigned k=1; do {
k*=num; num/=10; } while(num); return(k); } main()
{ unsigned n=26;
printf(\ }
A)0 B)4 C)12 D)无限次循环
(14)已知字母A的ASCII码值是65,字母a的ASCII码值是97,以下程序__C____。 main()
{ char a='A'; int b=20;
printf(\ }
A)表达式非法,输出零或不确定值
B)因输出项过多,无输出或输出不确定值
C)输出结果为20,141 D)输出结果为20,141,20
(15)C语言函数返回值的类型是由___D___决定的。
A)return语句中的表达式类型 B)调用函数的主调函数类型
C)调用函数时临时 D)定义函数时所指定的函数类型 (16)下列程序执行后输出的结果是__C____。
int d=1; fun(int p) { int d=5; d+=p++;
printf(\ }
main()
{ int a=3;
fun(a); d+=a++;
printf(\ }
A)8,12 B)9,13 C)8,4 D)9,5 (17)已知下面的程序段,正确的判断是_C____。 #define A 3
#define B(A) ((A+1)*a) int a=3; ……
X=3*(A+B(7));
A)程序错误,不允许嵌套定义 B)X=93
C)X=81 D)程序错误,宏定义不允许有参数 (18)定义int *swap()指的是_B____。
A)一个返回整型值的函数swap()
B)一个返回指向整型值指针的函数swap()
C)一个指向函数swap()的指针,函数返回一个整型值 D)以上说法均错
(19)以下程序段的输出结果是__B____。 main()
{ char s1[10],s2[10],s3[10];
scanf(\ puts(s1);puts(s2);puts(s3); }
输入数据如下:(此处
A)aaa B)aaa C)aaa\\0bbb\\0 D)aaabbb Bbb bbb
(20)下述函数功能是__A____。 int fun(char *x) { char *y=x; while(*y++); return y-x-1; }
A)求字符串的长度 B)求字符串存放的位置
C)比较两个字符串的大小 D)将字符串x连接到字符串y后面 (21)以下程序的输出结果是__A____。 main()
{ char str[12]={'s','t','r','i','n','g'}; printf(\ }
A)6 B)7 C)11 D)12 (22)请读程序段:
char str[]=\ printf(\
程序段的输出结果是__B____。
A)68 B)0 C)字符’D’的地址 D)不确定的值
(23)若有定义:int a[4][10];,则以下选项中对数组元素a[i][j]引用错误的是___B___。 (0<=i<4,0<=j<10)
A)*(&a[0][0]+10*i+j) B)*(a+i)+j C)*(*(a+i)+j) D)*(a[i]+j) (24)设有以下语句:
char str1[]=\ 则__C D____不是对库函数的正确调用。
A)strcpy(str1,\ B)strcpy(str2,\ C)strcpy(str3,\ D)strcpy(str4,\ (25)请读程序: #include
{ char *s1=\ s1++;s2++;
printf(\ }
上面程序的输出结果是__A____。
A)正数 B)负数 C)零 D)不确定的值 (26)下面程序的输出是___A___。 char s[]=\ main()
{ char *p;
for(p=s;p
}
A)ABCD B) A C) D D)ABCD BCD B C ABC CD C B AB D D A A (27)以下程序输出的结果为___C___。 main()
{ char *alpha[6]={\ char **p; int i; p=alpha;
for(i=0;i<4;i++)
printf(\ }
A)ABCDEFGHIJKL B)ABCD C)ABCDEFGHIJKLMNOP D)AEIM (28)下面程序的输出结果是__A____。 #include
{ char *p[]={\ int i;
for(i=3;i>=0;i--,i--) printf(\ printf(\ }
A)SO B)SP C)SPOPK D)SHOB (29)以下程序的输出结果是__B____。 #include
void prt(int *x,int *y,int *z)
{ printf(\ int a=10,b=40,c=20; main()
{ prt(&a,&b,&c); prt(&a,&b, &c); }
A)11,42,31 B)11,41,20 C)11,21,40 D)11,41,21 12,22,41 12,42,20 11,21,41 12,42,22
(30)若一个外部变量的定义形式为static int x;,那么,其中static的作用应该是__C____。 A)将变量存储在静态存储区
B)使变量x可以由系统自动初始化 C)使x只能在本文件内引用 D)使x的值可以永久保留
(31)以下程序的输出结果是__B____。 #include
{ int a,k=3;
a=++SQR(k+1); printf(\ }
A)8 B)9 C)17 D)20
(32)下面是对宏定义的描述,不正确的是___C___。
A)宏不存在类型问题,宏名无类型,它的参数也无类型 B)宏替换不占用运行时间
C)宏替换时先求出实参表达式的值,然后代入形参运算求值 D)宏替换只不过是字符替代而已
(33)已知小写字母a的ASCII码为97,大写字母A的ASCII码为65,以下程序的结果是___C___。 main()
{ unsigned int a=32,b=66; printf(\ }
A)66 B)98 C)b D)B 二、填空题(每空2分)
(1)若有定义int m=5,y=2,则执行表达式y+=y-=m*=y后,y的值为 【_____-16_________】 。
(2) 若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为
【___8.0__________】 。
(3)设有char a,b;,若要通过a&b运算屏蔽掉a中的其他位,只保留第2位和第8位(右起为第1位),则b的
二进制是 【__10000010___】 。
(4)下列程序执行后输出的结果是 【_______7__________】 。 f(int a)
{ static c=0;
c=a+c++; return(c); }
main()
{ int a=2,i,k;
for(i=0;i<2;i++) k=f(a++);
printf(\ }
(5)下面程序执行后输出的结果是 【_______2___________】 。 int m=13;
int fun(int x,int y) { int m=3;
return(x*y-m); } main()
{ int a=7,b=5;
printf(\
}
(6)下列程序执行后输出的结果是 【_______12___________】 。 main()
{ int arr[10],i,k=0;
for(i=0;i<10;i++) arr[i]=i; for(i=1;i<4;i++) k+=arr[i]+i; printf(\ }
(7)以下程序的输出结果是: 【_____1,0________】 。 main( )
{ int a[10]={1,2,3,4,5,6,7,8,9,0},*p; p=a;
printf(\
printf(\ }
(8)以下函数的功能是计算s=1+1/2!+1/3!+…+1/n!,请填空。 double fun(int n)
{ double s=0.0, fac=1.0; int i,k=1;
for(i=1;i<=n;i++)
{ 【_____k*k*i______】 ; fac=fac/k; s=s+fac; } }
(9)下面程序的运行结果是 【____x=11____________】 。 main()
{ unsigned int a=0112,x; x=a>>3;
printf(\ }
(10)函数delete(s,i,n)是作用是从字符串s中删除从第i个字符开始的n个字符,请填空。 void delete(char s[],int i,int n) { int j,k,length=0; while(s[length])
{ 【___length++______】 ; --i; j=i; }
if( 【_____ i if(i+n<=length) while(k