C期末语言题库

[复制链接]
查看565 | 回复0 | 2023-5-27 19:57:39 | 显示全部楼层 |阅读模式
单选题:(每题2分,共80分)

1、下列不合法的十六进制数是( ) (2分)
  A. oxff
  B. 0Xcde
  C. Oxll
  D. Ox23

  参考答案: A
2、将三个数排序需要比较______次。 (2分)
  A. 2
  B. 3
  C. 4
  D. 不确定

  参考答案: B
3、以下程序的输出结果是
main( )
{ int k=17;
printf("%d,%o,%x \n",k,k,k);
} (2分)
  A. 17,021,0x11
  B. 17,17,17
  C. 17,0x11,021
  D. 17,21,11

  参考答案: D
4、在C语言中,合法的字符常量是______.
   (2分)
  A. '\084'   
  B. '\x43'
  C. 'ab' 
  D. ″\0″

  参考答案: B
5、在C语言中,int、char和short三种类型数据在内存中所占用的字节数
(2分)
  A. 由用用户自己定义
  B. 均为2个字节
  C. 是任意的
  D. 由所用机器的机器字长决定

  参考答案: D
6、若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为

(2分)
  A. 1.4
  B. 1
  C. 2.0
  D. 2

  参考答案: B
7、设有说明语句:char a='\72';则变量a
(2分)
  A. 包含1个字符
  B. 包含2个字符
  C. 包含3个字符
  D. 说明不合法

  参考答案: A
8、若有以下说明和语名:
int a=5,m;
m=a++;
此处表达式m的值是____
(2分)
  A. 7
  B. 6
  C. 5
  D. 4

  参考答案: C
9、以下程序的输出结果是______
main()
{
int x=10,y=10;
printf("%d%d\n",x--,--y);
}
(2分)
  A. 10 10
  B. 9 9
  C. 9 10
  D. 10 9

  参考答案: D
10、下列选项中,不正确的赋值语句是_____ (2分)
  A. ++t;
  B. n1=(n2=(n3=0));
  C. k=1=j;
  D. a=b+c=1;

  参考答案: C
11、以下程序段的输出结果是
int a=1234;
printf("%2d\n",a);
(2分)
  A. 12
  B. 34
  C. 1234
  D. 提示出错、无结果

  参考答案: C
12、为表示关系x ≥ y ≥ z,应使用C语言表达式_________。
(2分)
  A. (x > =y)&&(y > =z)
  B. (x > =y)AND(y > =z)
  C. (x > =y > =z)
  D. (x > =y)&(y > =z)

  参考答案: A
13、设有:int a=1,b=2,c=3,d=4,m=2,n=2;
执行 (m=a>b)&&(n=c>d)后n的值是
(2分)
  A. 1
  B. 2
  C. 3
  D. 4

  参考答案: B
14、判断char型变量cl是否为小写字母的正确表达式是
(2分)
  A. 'a'<=cl<='z'
  B. (cl>=a)&&(cl<=z)
  C. ('a'>=cl)||('z'<=cl)
  D. (cl>='a')&&(cl<='z')

  参考答案: D
15、能正确表示逻辑关系:"a ≥ =10或a ≤ 0"的C语言表达式是

(2分)
  A. a > =10 or a < =0
  B. a > =0||a < =10
  C. a > =10 &&a < =0
  D. a < =0 || a>=10

  参考答案: D
16、执行下面语句后的输出为( )
int i= -1;
if (i < =0)printf("****\n");
else printf("%%%%\n");
(2分)
  A. ****
  B. %%%%
  C. %%%%C
  D. 有语法错,不能执行

  参考答案: A
17、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为________。
(2分)
  A. a < > 0
  B. !a
  C. a=0
  D. a!=0

  参考答案: D
18、若K为整型,以下while循环执行( )次
K=0;
while (K=0) K=K-1;
(2分)
  A. 执行10次
  B. 无限循环
  C. 一次也不执行
  D. 执行一次

  参考答案: C
19、以下程序的输出结果是()
void main()
{int y=5; whlie(y--) ;
printf("y=%d\n",y); }  (2分)
  A. y=0
  B. y=1
  C. y=-1
  D. 无限循环

  参考答案: C
20、C语言中while和 do...while循环的主要区别()  (2分)
  A. do...while的循环体至少执行一次
  B. while的循环条件比do...while的循环条件严格
  C. do...while循环允许从外部转到循环体内
  D. do...while的循环体不能是复合语句

  参考答案: A
21、如果输入为:ABCdef 执行下面一段程序后,则输出为:
main( )
{char ch;
while((ch=getchar( ))!='\n')
{ if(ch > ='A' && ch < ='Z')ch=ch+32;
else if(ch > ='a' && ch < 'z')ch=ch-32;
printf("%c",ch);
}
printf("\n");
} (2分)
  A. ABCdef
  B. abcDEF
  C. abc
  D. DEF

  参考答案: B
22、以下选项中正确的定义语句是()
(2分)
  A. double a;b;
  B. double a=b=0;
  C. double a=7,b=0;
  D. double,a,b;

  参考答案: C
@23、若有说明 int a[3][4];则对a数组元素的正确引用是
(2分)
  A. a[2][4]
  B. a[1,3]
  C. a[1+1][0]
  D. a(2)(1)

  参考答案: C
@24、若有说明 int a[3][4];则a数组元素的非法引用是
(2分)
  A. a[0][2*1]
  B. a[1][3]
  C. a[4-2][0]
  D. a[0][4]

  参考答案: D
25、以下不能对二维数组a进行正确初始化的语句是                          
(2分)
  A. int a[2][3]={0};
  B. int a[][3]={{1,2},{0}};
  C. int a[2][3]={{1,2},{3,4},{5,6}};
  D. int a[][3]={1,2,3,4,5,6};

  参考答案: C
26、设有数组定义:char array[]=”China”;,则数组array所占的空间为( )。 (2分)
  A. 4个字节
  B. 5个字节
  C. 6个字节
  D. 7个字节

  参考答案: C
@27、以下程序运行后,输出结果是
#define PT 5.5
#difine S(x) PT*x*x
main()
{ int a=1,b=2;
print ("%4.lf/n",S(a+b));
} (2分)
  A. 49.5
  B. 9.5
  C. 22.0
  D. 45.0

  参考答案: B
28、下面程序的输出结果是
main()
{ int a[ ]={1,2,3,4,5,6,7,8,9,0,},*p;
p=a;
printf("%d\n",*p+9);
} (2分)
  A. 0
  B. 1
  C. 10
  D. 9

  参考答案: C
29、在C语言中,下面那种数据类型不属于构造类型( )
(2分)
  A. 枚举类型
  B. 数组类型
  C. 结构体类型
  D. 共用体类型

  参考答案: A
30、C语言程序是由( )组成  (2分)
  A. 一个主程序和若干子程序
  B. 函数
  C. 若干过程
  D. 若干子程序

  参考答案: B
31、putchar函数可以向终端输出一个()       (2分)
  A. 整型变量表达式值
  B. 实型变量值
  C. 字符串
  D. 字符或字符型变量值

  参考答案: D
32、请读程序:
#include
FUNC(int A, int B)
{ int C;
C=A+B;
return C;
}
main ( )
{ int X=6,Y=7,Z=8,R;
R=FUNC(X+Y ,Z--);
printf("%d\n",R);
}
上面程序的输出结果是
(2分)
  A. 11
  B. 20
  C. 21
  D. 31

  参考答案: C
33、C语言函数的隐含存储类别是______.
(2分)
  A. extern
  B. static
  C. register
  D. auto

  参考答案: D
34、 以下不正确的说法是()
(2分)
  A. 在不同的函数中可以使用相同名字的变量
  B. 形式参数是局部变量
  C. 在函数内定义的变量只在本函数范围内有效
  D. 在函数内的复合语句中定义的变量在本函数范围内有效

  参考答案: D
35、有以下程序
viod fun (int a,int b,int c)
{ a=456; b=567; c=678;}
main()
{ int x=10, y=20,z=30;
fun (x,y,z);
printf("%d,%d,%d\n",x,y,z);
}
输出结果是
(2分)
  A. 30,20,10
  B. 10,20,30
  C. 456,567,678
  D. 678,567,456

  参考答案: B
36、以下叙述中正确的是 (2分)
  A. C程序中的注释只能出现在程序的开始位置和语句的后面
  B. C程序书写格式严格,要求一行内只能写一个语句
  C. C程序书写格式自由,一个语句可以写在多行上
  D. 用C语言编写的程序只能放在一个程序文件中

  参考答案: C
37、下列可用于C语言用户标识符的一组是 (2分)
  A. void, define, WORD
  B. a3_3,_123,Car
  C. For, -abc, IF Case
  D. 2a, DO, sizeof

  参考答案: B
38、以下叙述中错误的是 (2分)
  A. 用户所定义的标识符允许使用关键字
  B. 用户所定义的标识符应尽量做到"见名识意"
  C. 用户所定义的标识符中,大、小写字母代表不同标识
  D. 用户所定义的标识符必须以字母或下划线开头

  参考答案: A
40、有如下程序段
int *p,a=10,b=1
p=&a; a=*p+b;
执行该程序段后,a的值为

(2分)
  A. 12
  B. 11
  C. 10
  D. 编译出错

  参考答案: B




程序设计题(以下3题中任选2题作答,每题10分,共20分):
1、编程序求出100到500之间同时满足除3余2和除5余3条件的数的个数。  (10分)

  参考答案:
main()
{
int i,num=0;
for(i=100;i < =500;i++)
{
if((i%3==2)&&(i%5==3))
num=num+1;
}
printf("\n%d",num);
}
本题答案:20
2、编写程序,求在10~1000之间所有能被4除余2,被7除余3,被9除余5的数之和。  (10分)

  参考答案:
main()
{ long s=0;
int m;
for(m=10;m<=1000;m++)
{
if(m%4==2&&m%7==3&&m%9==5)

s=s+m;
}
printf("%d\n",s);
}  
本题参考答案:2000
3、编写程序,要求从键盘输入一个字符,转换其大小写并输出。  (10分)

  参考答案:
void main()
{
char ch1,ch2;//ch1:输入前的字符,ch2:转换后的字符
printf("please input a char:");
scanf("%c",&ch1);
if(ch1>='A'&&ch1<='Z')
ch2=ch1+32;
if(ch1>='a'&&ch2<='z')
ch2=ch1-32;
printf("转换后的字符为:%c\n",ch2);
}


                       
单选题:(每题2分,共80分)

1、( )是构成c语言程序的基本单位 (2分)
  A. 函数
  B. 变量
  C. 子程序
  D. 语句

  参考答案: A
3、以下选项中属于C语言的数据类型是

(2分)
  A. 复数型
  B. 逻辑型
  C. 双精度型
  D. 集合型

  参考答案: C
4、若变量a是int类型,并执行了语句:a=‘A'+1.6;,则正确的叙述是

(2分)
  A. a的值是字符C
  B. a的值是浮点型
  C. 不允许字符型和浮点型相加
  D. a的值是字符‘A’的ASCII值加上1

  参考答案: D
5、以下所列的C语言常量中,错误的是

   (2分)
  A. 0xFF
  B. 1.2e0.5
  C. 2L
  D. '\72'

  参考答案: B
6、若已定义x和y为double型,则表达式:x=1,y=x+3/2的值是____  (2分)
  A. 1
  B. 2
  C. 2.0
  D. 2.5

  参考答案: c
7、表达式((a=3*5,a*5),a+5)的值是多少( )
(2分)
  A. 20
  B. 80
  C. 不能确定
  D. 15

  参考答案: A
9、若有说明语句:int a,b,c ;
则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是

(2分)
  A. scanf("%d%d%d",&a,&b,&c);
  B. scanf("%d%d%d",&a,&b,&d);
  C. scanf("%d%d%d",a,b,d);
  D. scanf("%d%d%d",a,b,*d);

  参考答案: A
10、以下说法中正确的是
(2分)
  A. #define和printf都是C语句
  B. #define是C语句,而printf不是
  C. printf是C语句,但#define不是
  D. #define和printf都不是C语句

  参考答案: D
11、设有如下定义:
int a=1,b=2,c=3,d=4,m=2,n=2;
则执行表达式:(m=a>b)&&(n=c>d)后,n的值为______________.
(2分)
  A. 1
  B. 2
  C. 3
  D. 0

  参考答案: B
13、能正确表示a和b同时为正或同时为负的逻辑表达式是
(2分)
  A. (a>=0‖b>=0)&&(a<0‖b<0)
  B. (a>=0&&b>=0)&&(a<0&&b<0)
  C. (a+b>0)&&(a+b<=0)
  D. a*b>0

  参考答案: D
15、为避免嵌套的条件分支语句if…else的二义性,C语言规定,C程序中的
else总是与____组成配对关系。
(2分)
  A. 其上面距它最近的,并且没有其他else与其配对的if相配对
  B. 在同一行上的if
  C. 缩排位置相同的if
  D. 在其之前未配对的if

  参考答案: A
16、以下程序输出结果是
main ( )
{ int m=5;
if (m++ > 5) printf ("%d\n",m);
else printf ("%d\n",m--);
} (2分)
  A. 7
  B. 6
  C. 5
  D. 4

  参考答案: B
18、以下程序段的输出结果是_____
int x=3;
do
{ printf("%3d",x-=2);}
while (!(--x));
(2分)
  A. 1
  B. 3 0
  C. 1 -2
  D. 死循环

  参考答案: C
19、执行语句: for (i=1;i++ < 4;);后,变量i的值是______.
(2分)
  A. 3
  B. 4
  C. 5
  D. 不定

  参考答案: C
20、以下程序的输出结果是

main( )
{ int n=4;
while(n--)printf("%d ",--n);
} (2分)
  A. 2 0
  B. 3 1
  C. 3 2 1
  D. 2 1 0

  参考答案: A
21、设有程序段 书签
int k=10;
while(k=0) k=k-1;
则下面描述中正确的是________
(2分)
  A. while循环执行10次
  B. 循环是无限循环
  C. 循环体语句一次也不执行
  D. 循环体语句执行一次

  参考答案: C
22、若有说明:int a[10];,则对a数组元素的正确引用是( )。 (2分)
  A. a[10]
  B. a[3.5]
  C. a(5)
  D. a[10-10]

  参考答案: D
23、若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为_______(假设a[0][0]位于数组的第一个位置上)
(2分)
  A. i*m+j
  B. j*m+i
  C. i*m+j-1
  D. i*m+j+1

  参考答案: A
24、已知int a[][3]={1,2,3,4,5,6,7};,则数组a的第一维的大小是( )。 (2分)
  A. 2
  B. 3
  C. 4
  D. 无确定值

  参考答案: B
26、以下程序的输出结果是
#define f(x) x*x
main( )
{ int a=6,b=2,c;
c=f(a) / f(b);
printf("%d \n",c);
}  (2分)
  A. 9
  B. 6
  C. 36
  D. 18

  参考答案: C
28、变量的指针,其含义是指该变量的
(2分)
  A. 值
  B. 地址
  C. 名
  D. 一个标志

  参考答案: B
30、以下不合法的数值常量是()
    (2分)
  A. 011
  B. 1e1
  C. 8.0e0.5
  D. 0xabcd

  参考答案: C
31、以下叙述中错误的是()  (2分)
  A. 用户自定义的函数中可以没有return语句
  B. 用户自定义函数中若没有return语句,则应当定义函数为void类型
  C. C语言程序总是从main()函数开始执行
  D. main()函数必须位于程序的开始

  参考答案: D
34、C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是____.
(2分)
  A. 单向的值传递
  B. 单纯地址传递
  C. 值传递和地址传递都有可能
  D. 由实参传给形参,然后由形参传回给实参,即是双向传递

  参考答案: A
35、当调用函数时,实参是一个数组名,则向函数传递的是( )。 (2分)
  A. 数组的长度
  B. 数组的首地址
  C. 数组每一个元素的地址
  D. 数组每个元素中的值

  参考答案: B
36、下列叙述不正确的是( ) (2分)
  A. 在c程序中,%是只能用于整数运算的运算符
  B. 在C程序中,无论是整数还是实数,都能正确无误地表示
  C. 若a是实型变量,c程序中a=20是正确的,因此实型变量允许被整型常量赋值
  D. 在C程序中,语句之间必须要用分号“;”分隔

  参考答案: B
38、以下可用作C语言用户标识符的是 (2分)
  A. void,define,WORD
  B. a3_b3,_123,IF
  C. FOR,--abc,Case
  D. 2a,Do,Sizeof

  参考答案: B
39、以下关于运算符优先顺序的描述中正确的是
(2分)
  A. 关系运算符 < 算术运算符 < 赋值运算符 < 逻辑运算符
  B. 逻辑运算符 < 关系运算符 < 算术运算符 < 赋值运算符
  C. 赋值运算符 < 逻辑运算符 < 关系运算符 < 算术运算符
  D. 算术运算符 < 关系运算符 < 赋值运算符 < 逻辑运算符

  参考答案: C
40、现有定义int a;double b;float c;char k;,则表达式a/b+c-k值的类型为: (2分)
  A. int
  B. double
  C. float
  D. char

  参考答案: B




程序设计题(以下3题中任选2题作答,每题10分,共20分):
1、编程序求1~120所有整数的平方和并输出结果。  (10分)

  参考答案:
main()
{long int a,s=0;
clrscr();
for(a=1;a < =120;a++)
{s=s+a*a;
}
printf("%ld",s);
}  
本题答案:583220
2、编程序求出1-4000以内能被3或者11整除数的个数。  (10分)

  参考答案:
main()
{
int i,num=0;
for(i=1;i < =4000;i++)
{
if((i%3==0)&&(i%11==0))
num=num+1;
}
printf("\n%d",num);
}

本题答案:121
3、编写程序,要求从键盘输入一个正整数,判断该数既是5又是7的整倍数,若是,则输出yes,否则输出no。  (10分)

  参考答案:  
void main()
{
int x;
printf("please input a integer:");
scanf("%d",&x);
if(x%5==0 && x%7==0)
printf("yes\n");
else
printf("no\n");

}


                       
单选题:(每题2分,共80分)

1、C语言程序的基本单位是_______.
(2分)
  A. 语句
  B. 函数
  C. 程序行
  D. 字符

  参考答案: B
2、以下叙述不正确的是(  )


(2分)
  A. 一个c源程序可由一个或多个函数组成
  B. 一个C源程序必须包含一个main()函数
  C. c程序的基本组成单位是函数
  D. 在C程序中,注释说明只能位于一条语句的后面

  参考答案: D
3、以下选项中,非法的字符常量是( )

(2分)
  A. '\t'
  B. '\17'
  C. "n"
  D. '\xaa'

  参考答案: C
5、下面四个选项中,均是不合法的用户标识符的选项是
(2分)
  A. A P_0 do
  B. float la0 _A
  C. b-a goto int
  D. _123 temp int

  参考答案: C
6、若变量a、i 已正确定义,且i已正确赋值,合法的语句是
(2分)
  A. a==1
  B. ++i;
  C. a=a++=5;
  D. a=int(i);

  参考答案: B
7、设有以下定义:
int x=10,y=3,z;
则语句
printf("%d\n",z=(x%y,x/y))
的输出结果是_____
(2分)
  A. 1
  B. 0
  C. 4
  D. 3

  参考答案: D
8、设ch是char型变量,其值为A,且有下面的表达式:
ch=(ch>='A'&&ch<='Z')?(ch+32):ch
上面表达式的值是 (2分)
  A. A
  B. a
  C. Z
  D. z

  参考答案: B
9、设x为int型变量,则执行以下语句后,x的值为_______.
x=10; x+=x-=x-x;
(2分)
  A. 10
  B. 20
  C. 40
  D. 30

  参考答案: B
10、表达式18/4*sqrt(4.0)/8值的数据类型为 (2分)
  A. int
  B. float
  C. double
  D. 不确定

  参考答案: C
11、以下程序的输出结果是_____
main()
{char str[12]={'s','t','r','i','n','g'};
printf("%d\n",strlen(str));
} (2分)
  A. 6
  B. 7
  C. 11
  D. 12

  参考答案: A
12、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是
(2分)
  A. c=b=a;
  B. (a=c)‖(b=c);
  C. (a=c)&&(b=c);
  D. a=c=b;

  参考答案: C
13、逻辑运算符两侧运算对象的数据类型
(2分)
  A. 只能是0或1
  B. 只能是0或非0正数
  C. 只能是整型或字符型数据
  D. 可以是任何类型的数据

  参考答案: D
15、在C语言中,逻辑值"真"用( )表示
(2分)
  A. TRUE
  B. 大于0的数
  C. 非0的整数
  D. 非0的数

  参考答案: D
16、判断字符型变量x是否是大写字母的正确的表达式______.
(2分)
  A. 'A'<=x<='Z'
  B. (x>=A)&&(x<=Z)
  C. ('A'<=x)&&('Z'=>x)
  D. (x>='A')&&(x<='Z')

  参考答案: D
19、以下叙述正确的是( )
(2分)
  A. do-while语句构成的循环不能用其它语句构成的循环来代替
  B. do-while语句构成的循环只能用break语句退出(错误,不符合while条件的)
  C. 用do-while语句构成的循环,在while后的表达式为非零时结束循环。
  D. 用do-while语句构成的循环,在while后的表达式为零时结束循环。

  参考答案: D
20、在下列选项中,构成死循环的程序段是
(2分)
  A. int i=100;
  B. for(;;);
  C. int k=1000;
  D. int s=36;

  参考答案: B
21、假定a和b为int型变量,则执行以下语句后b的值为
a=1; b=10;
do
{ b=b-a; a++; }
while (b-- > 0);
(2分)
  A. -3
  B. -2
  C. -1
  D. -4

  参考答案: D
23、在C语言中,当while语句中的条件为( )时,结束该循环.
(2分)
  A. 0
  B. 1
  C. TRUE
  D. 非0

  参考答案: A
25、对以下说明语句的正确理解是__________
int a[10]={6,7,8,9,10};
(2分)
  A. 将5个初值依次赋给a[1]至a[5]
  B. 将5个初值依次赋给a[0]至a[4]
  C. 将5个初值依次赋给a[6]至a[10]
  D. 因为数组长度与初值的个数不相同,所以此语句不正确

  参考答案: B
26、以下对二维数组a的正确说明是
(2分)
  A. int a[3][]
  B. float a(3,4)
  C. double a[1][4]
  D. float a(3)(4)

  参考答案: C
27、合法的数组说明语句是( )。 (2分)
  A. int a[]="string";(错在用字符串对整型数组赋值)
  B. int a[5]={O,1,2,3,4,5};
  C. char a="string";
  D. char a[]={0,1,2,3,4,5};

  参考答案: D
31、在16位IBM-PC机上使用C语言,若有如下定义
struct data
{int i;
char ch;
double f;
}b;
则结构变量b占用内存的字节数是
(2分)
  A. 1
  B. 2
  C. 8
  D. 11

  参考答案: D
32、在位运算中,操作数每右移一位,其结果相当于
(2分)
  A. 操作数乘以2
  B. 操作数除以2
  C. 操作数乘以4
  D. 操作数除以4

  参考答案: B
33、以下叙述中不正确的是
(2分)
  A. 预处理命令行都必须以#号开始
  B. 在程序中凡是以#号开始的语句行都是预处理命令行
  C. 以下是正确的宏定义 #define IBM_PC
  D. C程序在执行过程中对预处理命令行进行处理 (应该是在编译前)

  参考答案: D
36、C程序中,若函数调用采用传值方式,则( )
(2分)
  A. 实参和虚参各自占有存储单元
  B. 实参和虚参共享存储单元
  C. 由用户指定
  D. 由计算机随机确定

  参考答案: A
37、在一个源文件中定义的外部变量的作用域为( )。 (2分)
  A. 本文件的全部范围
  B. 本程序的全部范围
  C. 本函数的全部范围
  D. 从定义该变量的位置开始至本文件结束

  参考答案: B
39、一个C语言程序总是从(  )开始执行  (2分)
  A. 主过程
  B. 主函数
  C. 子程序
  D. 主程序

  参考答案: B
40、C语言中最简单的数据类型包括:__
(2分)
  A. 整型,实型,逻辑型
  B. 整型,字符型,逻辑型
  C. 整型,实型,字符型 
  D. 整型,实型,逻辑型,字符型

  参考答案: C




程序设计题(以下3题中任选2题作答,每题10分,共20分):

1、编程序求2+4+8+16+32+…这样的数之和。如果累加数大于3000时,则程序终止并输出结果。  (10分)

  参考答案:  
main()
{
int i=2,sum=0;
while(sum < =3000)
{
sum=sum+i;
i=i*2;
}
printf("\n%d",sum);
}
本题答案:4094
2、编程序求1~100能被7整除的个数。  (10分)

  参考答案:
main()
{int a,n=0;
for(a=1;a < =10;a++)
{if(a%7==0)
n++;
}
printf("%d",n);
}  
本题答案:71
3、编写程序,要求从键盘输入一个整数,打印出它是奇数还是偶数?  (10分)

  参考答案:  
void main()
{
int x;
printf("please input a integer:");
scanf("%d",&x);
if(x%2==1)
printf("%d是奇数\n",x);
else
printf("%d是偶数\n",x);
}


                       
单选题:(每题2分,共80分)

1、C语言可执行程序的开始执行点是( )
(2分)
  A. 程序中的一条可执行语句
  B. 程序中第一个函数
  C. 程序中的main函数
  D. 包含文件中的第一个函数

  参考答案: C
2、C语言程序的基本单位是( )。  (2分)
  A. 函数
  B. 过程
  C. 子程序
  D. 子例程

  参考答案: A
5、C语言中合法的字符常量是____ (2分)
  A. '\084'
  B. '\X43'
  C. 'ab'
  D. "\0"

  参考答案: B
6、以下不正确的叙述是
(2分)
  A. 在C程序中,逗号运算符的优先级最低
  B. 在C程序中,APH和aph是两个不同的变量
  C. 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
  D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

  参考答案: D
10、在C语言中,运算对象必须是整型数的运算符是____ (2分)
  A. %
  B. \
  C. %和\
  D. **

  参考答案: A
13、为了避免在嵌套的条件语句if…else中产生二义性,C语言规定:else子句总是与( )配对。 (2分)
  A. 缩排位置相同的if
  B. 其之前最近的if
  C. 其之后最近的if
  D. 同一行上的if

  参考答案: B
14、下面程序的输出是
main()
{ int x=10,y=3;
printf("%d\n",y=x/y);} (2分)
  A. 0
  B. 1
  C. 3
  D. 不确定的值

  参考答案: C
16、C语言的对语句中用作判断的表达式一般为____
(2分)
  A. 关系表达式
  B. 逻辑表达式
  C. 算术表达式
  D. 逻辑表达式和关系表达式
  E. 关系或逻辑表达式

  参考答案: D
17、表示关系X<=Y<=Z的C语言表达式为_____.
(2分)
  A. (X < =Y)&&(Y < =Z)
  B. (X < =Y)AND(Y < =Z)
  C. (X < =Y < =Z)
  D. (X < =Y)&(Y < =Z)

  参考答案: A
19、读下列程序:
#include
main()
{
int x,y;
scanf(”%d”,&x);
y=0;
if(x>=0)
{if(x>0)y=1;}
else y=-1;
prinff(”%d”,y);}
当从键盘输入32时,程序输出结果为( )。 (2分)
  A. 0
  B. 1
  C. -1
  D. 不确定

  参考答案: B
20、执行下面语句后的输出为( )
int i= -1;
if (i < =0)printf("****\n")
else printf("%%%%\n")
(2分)
  A. ****
  B. %%%%
  C. %%%%C
  D. 有语法错,不能执行

  参考答案: D
23、b’在内存中占____个字节。“b”在内存中占____个字节 (2分)
  A. 1和2
  B. 1
  C. 3
  D. 2

  参考答案: A
24、以下描述中正确的是
(2分)
  A. 由于 do-while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
  B. do-while 循环由do开始,用while结束,在 while(表达式)后面不能写分号
  C. 在 do-while 循环体中,一定要有能使 while 后面表达式的值变为零(“假”)的操作
  D. do-while 循环中,根据情况可以省略 while

  参考答案: C
25、对 for(表达式1; ;表达式3) 可理解为
(2分)
  A. for(表达式1;0;表达式3)
  B. for(表达式1;1;表达式3)
  C. for(表达式1;表达式1;表达式3)
  D. for(表达式1;表达式3;表达式3)

  参考答案: B
27、在c语言中,一维数组的定义方式为:类型说明符数组名( )。 (2分)
  A. [常量表达式]
  B. [整型表达式]
  C. [整型常量]或[整型表达式]
  D. [整型常量]

  参考答案: A
28、以下程序的输出结果是

main( )
{ int i,x[3][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<4;i+=2)printf("%d ",x[i][i]);
} (2分)
  A. 5 2
  B. 9 1
  C. 5 3
  D. 9 7

  参考答案: B
29、C语言规定,在一个源程序中,main函数的位置 (2分)
  A. 必须在最开始
  B. 必须在系统调用的库函数的后面
  C. 可以任意
  D. 必须在最后

  参考答案: C
31、若x为整型变量,p是指向整型数据的指针变量,则正确的赋值表达式是()。 (2分)
  A. p=&x
  B. p=x
  C. *p=&x
  D. *p=*x

  参考答案: A
33、当说明一个结构体变量时系统分配给它的内存是
(2分)
  A. 各成员所需内存量的总和
  B. 结构中第一个成员所需内存量
  C. 成员中占内存量最大者所需的容量
  D. 结构中最后一个成员所需内存量

  参考答案: A
34、在位运算中,操作数每左移一位,其结果相当于
(2分)
  A. 操作数乘以2
  B. 操作数除以2
  C. 操作数除以4
  D. 操作数乘以4

  参考答案: A
35、以下叙述中错误的是 (2分)
  A. C语句必须以分号结束
  B. 复合语句在语法上被看作一条语句
  C. 程序可以有两个主函数
  D. 赋值表达式末尾加分号就构成赋值语句

  参考答案: C
36、下列说法正确的是________.
(2分)
  A. 调用函数时,实参与形参可以共用内存单元
  B. 调用函数时,实参的个数、类型和顺序与形参可以不一致
  C. 调用函数时形参可以是表达式
  D. 调用函数时,将为形参分配内存单元

  参考答案: D
37、返回值为void的函数,其含义是____.
(2分)
  A. 调用函数之后,被调用的函数没有返回值
  B. 调用函数之后,被调用的函数不返回
  C. 调用函数之后,被调用的函数的返回值为任意的类型
  D. 以上三种说法都是错误的

  参考答案: A
38、C语言程序由函数组成。它的____。
(2分)
  A. 主函数必须在其他函数之前,函数内可以嵌套定义函数
  B. 主函数可以在其他函数之前,函数内不可以嵌套定义函数
  C. 主函数必须在其他函数之前,函数内不可以嵌套定义函数
  D. 主函数必须在其他函数之后,函数内可以嵌套定义函数

  参考答案: B
39、若调用一个函数,且此函数中没有return语句,则正确的说法是:该函数

(2分)
  A. 没有返回值
  B. 返回若干个系统默认值
  C. 能返回一个用户所希望的值
  D. 返回一个不确定的值

  参考答案: D
40、以下叙述中错误的是________。  (2分)
  A. C语言编写的函数源程序,其文件名后缀可以是.C
  B. C语言编写的函数都可以作为一个独立的源程序文件
  C. C语言编写的每个函数都可以进行独立的编译并执行
  D. 一个C语言程序只能有一个主函数

  参考答案: C




程序设计题(以下3题中任选2题作答,每题10分,共20分):

1、编程序求1~80所有整数的平方和并输出结果。  (10分)

  参考答案:
main()
{
int i,x;
long sum=0;
for(i=1;i < =80;i++)
{
x=i*i;
sum=sum+x;
}
printf("%ld",sum);
}
参考答案:173880
2、编程序统计300~500能被3整除的个数。  (10分)

  参考答案:
main()
{
int a;
int i=0;
for(a=300;a < =500;a++)
{
if(a%3==0)
i=i+1;
}
printf("%d",i);

}


参考答案是:67


                       
单选题:(每题2分,共80分)

1、以下选项中合法的用户标识符是( ) (2分)
  A. int
  B. a#
  C. 5mem
  D. _243

  参考答案: D
2、C程序是( )
(2分)
  A. 顺序执行
  B. 从main函数开始
  C. 从函数体开始
  D. 任意语句

  参考答案: B
5、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是
(2分)
  A. 7
  B. 8
  C. 6
  D. 2

  参考答案: B
6、C语言中运算对象必须是整型的运算符是

(2分)
  A. %=
  B. /
  C. =
  D. 〈=

  参考答案: A
7、 若有以下程序段,
int c1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后,c3中的值是
(2分)
  A. 0
  B. 0.5
  C. 1
  D. 2

  参考答案: A
16、若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是
(2分)
  A. (exp==0)
  B. (exp!=0)
  C. (exp==1)
  D. (exp!=1)

  参考答案: B
18、下面的程序是______
main()
{ int x=3,y=0,z=0;
if (x==y+z) printf("****");
else printf("####");
} (2分)
  A. 有语法错误不能过通过编译
  B. 输出****
  C. 可能通过编译,但是不能通过连接,因而不能运行
  D. 输出####

  参考答案: D
21、有以下程序段
int k=0
while(k=1)k++;
while 循环执行的次数是

(2分)
  A. 无限次
  B. 有语法错,不能执行
  C. 一次也不执行
  D. 执行1次

  参考答案: A
22、C语言中 while 和 do-while 循环的主要区别是
(2分)
  A. do-while 的循环体至少无条件执行一次
  B. while的循环控制条件比 do-while的循环控制条件更严格
  C. do-while 允许从外部转到循环体内
  D. do-while 的循环体不能是复合语句

  参考答案: A
27、若有以下语句,则正确的描述是( )。
char x[]=”12345”;
char y[]={’1’,’2’,’3’,’4’,’5’}; (2分)
  A. x数组和y数组的长度相同
  B. x数组长度大于y数组长度
  C. x数组长度小于y数组长度
  D. x数组等价于y数组

  参考答案: B
30、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是
main()
{int *p,*q,a,b;
p=&a;
printf("input a:");
scanf("%d",*p);
}
(2分)
  A. *p表示的是指针变量p的地址
  B. *p表示的是变量a的值,而不是变量a的地址
  C. *p表示的是指针变量p的值
  D. *p只能用来说明p是一个指针变量

  参考答案: B
33、表达式:10!=9的值是___ (2分) 书签!!!!!
  A. true
  B. 非零值
  C. 0
  D. 1

  参考答案: D
39、C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符
(2分)
  A. 必须为字母
  B. 必须为下划线
  C. 必须为字母或下划线
  D. 可以是字母,数字和下划线中任一字符

  参考答案: C
程序设计题(以下3题中任选2题作答,每题10分,共20分):
1、编程序求1+3+5+7+9+…这样的数之和。如果累加数大于750时,则程序终止并输出结果。  (10分)

  参考答案:
main()
{
int i=1,sum=0;
while(sum < =750)
{
sum=sum+i;
i=i+2;
}
printf("\n%d",sum);
}

参考答案: 784
2、编程序求1~600能被11整除的个数。  (10分)

  参考答案:
main()
{
int i,sum=0;
for(i=1;i < =600;i++)
if(i%11==0)
sum=sum+1;
printf("\n%d",sum);
}
参考答案:54
3、编写程序,要求从键盘输入一个三位数,判断其是否为水仙花数。(水仙花数是指一个三位数,它的各位数字的立方和等于其本身。)  (10分)

  参考答案:  
void main()
{
int x;
int a,b,c;//a,b,c分别表示x的个位十位和百位
printf("please input a integer:");
scanf("%d",&x);
a=x%10;
b=x/10%10;
c=x/100;
if(a*a*a+b*b*b+c*c*c==x)
printf("%d是水仙花数\n",x);
else
printf("%d不是水仙花数\n",x);
}


                       
单选题:(每题2分,共80分)

2、C语言规定:在一个源程序中,main()函数的位置( ) (2分)
  A. 必须在最开始
  B. 必须在系统调用的库函数的后面
  C. 可以任意
  D. 必须在最后

  参考答案: C
4、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是
(2分)
  A. INPUT x、y、z;
  B. scanf("%d%d%d",&x,&y,&z);
  C. scanf("%d%d%d",x,y,z);
  D. read("%d%d%d",&x,&y,&z);

  参考答案: B
9、以下程序的输出结果是
main( )
{ int a=-1,b=4,k;
k=(++a<0)&&!(b--<=0);
printf("%d%d%d\n",k,a,b);
}
(2分)
  A. 1 0 4
  B. 1 0 3
  C. 0 0 3
  D. 0 0 4

  参考答案: D
10、表达式:10!=9的值是___
(2分)
  A. true
  B. 非零值
  C. 0
  D. 1

  参考答案: D
12、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是______.
(2分)
  A. 把x和y按从大到小排列
  B. 把x和y按从小到大排列
  C. 无确定结果
  D. 交换x和y中的值

  参考答案: D
13、有如下程序

main( )

{
int y=3,x=3,z=1;
printf("%d %d\n",(++x,y++),z+2);
}

运行该程序的输出结果是

(2分)
  A. 3 4
  B. 4 2
  C. 4 3
  D. 3 3

  参考答案: D
14、设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是
printf("%d,%d\n",x--,--y); (2分)
  A. 10,3
  B. 9,3
  C. 9,2
  D. 10,2

  参考答案: D
16、设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,
则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为:



(2分)
  A. 0
  B. 1
  C. 2
  D. 3

  参考答案: C
28、若有以下定义和语句:
   int a[10]={1,2,3,4,5,6,7,8,9,10},p=a;
   则不能表示a数组元素的表达式是( )
   (2分)
  A. p[5]
  B. a[10]
  C. a[5]  
  D. a[p-a]

  参考答案: B
30、以下程序的输出结果为( )。
#include
#define SQR(x) x*x .
main()
{
int a,k=3;
a=SQR(k+1);
printf(”%d\n”,a);
}  (2分)
  A. 6
  B. 10
  C. 8
  D. 7

  参考答案: D
34、sizeof(float)是
(2分)
  A. 一种函数调用
  B. 一个不合法的表达式
  C. 一个整型表达式
  D. 一个浮点表达式

  参考答案: C
35、当顺利执行了文件关闭操作时,fclose函数的返回值是
(2分)
  A. -1
  B. TRUE
  C. 0
  D. 1

  参考答案: C
38、C语言中,若函数类型未显式说明,则隐含类型为( )
(2分)
  A. int
  B. char
  C. void
  参考答案: A
39、C语言中____函数的递归调用。
(2分)
  A. 允许
  B. 不允许
  C. 由用户自己而定
  D. 不确定

  参考答案: A
程序设计题(以下3题中任选2题作答,每题10分,共20分):
1、求在1000以内被17或者23整除的正整数数的个数。  (10分)
  参考答案:
main()
{
int i,m;
m=0;
for(i=1;i < =1000;i++)
{
if(i%17==0||i%23==0)
m++;
}
printf("%d",m);
return 0;
}




本题答案:99
2、编写程序,求在10~1000之间所有能被4除余3,被7除余4,被9除余4的数之和。  (10分)

  参考答案:
main()
{
int a;
int sum=0;
for(a=10;a < =1000;a++)
{
if((a%4==3)&&(a%7==4)&&(a%9==4))
sum=sum+a;
}
printf("%d",sum);
}

参考答案是:1780


                       
单选题:(每题2分,共80分)

2、算法的有穷性事指 (2分)
  A. 算法程序的运行时间是有限的
  B. 算法程序所处理的数据量是有限的
  C. 算法的长度是有限的
  D. 算法只能被有限用户使用

  参考答案: A
6、设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为
(2分)
  A. float
  B. char
  C. int
  D. double

  参考答案: D
7、若变量c为char类型,能正确判断出c为小写字母的表达式是
(2分)
  A. 'a'<=c<= 'z'
  B. (c>= 'a')||(c<= 'z')
  C. ('a'<=c)and ('z'>=c)
  D. (c>= 'a')&&(c<= 'z')

  参考答案: D
11、若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是

(2分)
  A. 1
  B. 2
  C. 2.0
  D. 2.5

  参考答案: C
12、以下定义和语句:
 char cl='b',c2='e';
 printf(″%d,%c\n″,c2-c1,c2-'a'+'A');
则输出结果是:
  (2分)
  A. 2,M
  B. 3,E
  C. 2,E
  D. 输出项与对应的格式控制不一致,输出结果不确定

  参考答案: B
21、在C语言中的if语句中,用作判断的表达式为()
(2分)
  A. 关系表达式
  B. 逻辑表达式
  C. 算数表达式
  D. 任意表达式

  参考答案: D
24、18、字符形式"\b"的功能是( )
(2分)
  A. 换行
  B. 回车
  C. 退格
  D. 横向跳格

  参考答案: C
26、以下数组定义中不正确的是
(2分)
  A. int a[2][3];
  B. int b[][3]={0,1,2,3};
  C. int c[100][100]={0};
  D. int d[3][]={{1,2},{1,2,3},{1,2,3,4}};

  参考答案: D
29、以下叙述中不正确的是
(2分)
  A. 预处理命令行都必须以#号开始
  B. 在程序中凡是以#号开始的语句行都是预处理命令行
  C. C程序在执行过程中对预处理命令行进行处理
  D. 以下是正确的宏定义 #define IBM_PC

  参考答案: C
32、已知学生记录描述为
struct student
{int no;
char name[20];
char sex;
struct
{int year;
int month;
int day;
}birth;
};
struct student s;
设变量s中的“生日”应是“1984年11月11日 (2分)
  A. year=1984;month=11;day=11;
  B. birth.year=1984;birth.month=11;birth.day=11;
  C. s.year=1984;s.month=11;s.day=11;
  D. s.birth.year=1984;s.birth.month=11;s.birth.day=11;

  参考答案: D
34、若有以下说明和语名:
int a=5
++a;
此处表达式++a的值是____
(2分)
  A. 7
  B. 6
  C. 5
  D. 4

  参考答案: B
35、C语言中函数返回值的类型是有______决定的。
(2分)
  A. 调用该函数的主调函数类型
  B. return语句中的表达式类型
  C. 定义函数时所指定的返回函数值类型
  D. 调用函数时临时

  参考答案: C
36、在一个C源程序文件中,若要定义一个只允许本源文件中所用的函数的全局变量,则变量需要使用的存储类别是____
(2分)
  A. Auto
  B. static
  C. register
  D. extern

  参考答案: B
38、C语言中函数返回值的类型由( )决定。 (2分)
  A. return语句中的表达式类型
  B. 调用函数的主调函数类型
  C. 调用函数时的临时类型
  D. 定义函数时所指定的函数类型

  参考答案: D
39、以下叙述中错误的是 (2分)
  A. C语言的可执行程序是由一系列机器指令构成的
  B. 用C语言编写的源程序不能直接在计算机上运行
  C. 通过编译得到的二进制目标程序需要连接才可以运行
  D. 在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件

  参考答案: D
40、下列变量名合法的是( )
(2分)
  A. #1
  B. $567
  C. a-b
  D. m_number

  参考答案: D




程序设计题(以下3题中任选2题作答,每题10分,共20分):
1、编程序统计150~400能被3整除的个数。  (10分)

  参考答案:
main()
{
int a;
int i=0;
for(a=150;a < =400;a++)
{
if(a%3==0)
i=i+1;
}
printf("%d",i);

}

参考答案是:84
2、编程序求1到1500之间所有偶数之和,并输出结果。  (10分)

  参考答案:
main()
{
int i=2,sum=0;
while(i < =1500)
{
sum=sum+i;
i=i+2;
}
printf("\n%d",sum);
}
本题答案:563250


                       
单选题:(每题2分,共80分)

4、下列描述中不正确的是
(2分)
  A. 字符型数组中可以存放字符串
  B. 可以对字符型数组进行整体输入、输出
  C. 可以对整型数组进行整体输入、输出
  D. 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值

  参考答案: C
6、若变量已正确定义并赋值,下面符合C语言语法的表达式是 (2分)
  A. a:=b+1
  B. a=b=c+2
  C. int 18.5%3
  D. a=a+7:c+b

  参考答案: B
8、若有以下定义和语句:
char c1='b',c2='e';
printf("%d,%c\n",c2-c1,c2-'a'+'A')
则输出结果是_______
(2分)
  A. 2,M
  B. 3,E
  C. 2,e
  D. 输出结果不确定

  参考答案: B
18、
下列错误的语句是() (2分)
  A. if(a>b)printf(”%d“,a)
  B. if(&&);a=m;
  C. if(1)a=m;else a=n;
  D. if(a>0);{else a=n;

  参考答案: B
22、在while(x)语句中的x与下面条件表达式等价的是( )。 (2分)
  A. x==0
  B. x==1
  C. x!=0
  D. x!=1

  参考答案: C
25、假定int类型变量占用两个字节,则数组x[10]在内存中所占字节数是( )  (2分)
  A. 3
  B. 6
  C. 10
  D. 20

  参考答案: D
27、在C语言中,引用数组元素时,其数组下标的数据类型允许是
(2分)
  A. 整型常量
  B. 整型表达式
  C. 整型常量或整型表达式
  D. 任何类型的表达式

  参考答案: A
32、C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是
(2分)
  A. 地址传递
  B. 单向值传递
  C. 由实参传给形参,再由形参传回给实参
  D. 由用户指定的传递方式

  参考答案: B
35、在c语言程序中( )。 (2分)
  A. 函数的定义可以嵌套,但函数的调用不可以嵌套
  B. 函数的定义和调用均可以嵌套
  C. 函数的定义和调用均不可以嵌套
  D. 函数的定义不可以嵌套,但函数的调用可以嵌套

  参考答案: D
37、c语言中形参的默认存储类别是( )。 (2分)
  A. 自动(auto)
  B. 静态(static)
  C. 寄存器(register)
  D. 外部(extem)

  参考答案: A
40、C语言中,double类型数据占( )个字节,char类型数据占( )个字节
(2分)
  A. 1
  B. 2
  C. 4
  D. 8和1

  参考答案: D




程序设计题(以下3题中任选2题作答,每题10分,共20分):
2、编程序求2+4+8+16+32+…这样的数之和。如果累加数大于1500时,则程序终止并输出结果。  (10分)

  参考答案:
main()
{
int i=2,sum=0;
while(sum < =1500)
{
sum=sum+i;
i=i*2;
}
printf("\n%d",sum);
}
本题答案:2046


                       
单选题:(每题2分,共80分)

1、在C语言中,数字029是一个() (2分)
  A. 八进制数
  B. 十六进制数
  C. 十进制数
  D. 非法数

  参考答案: D
2、算法具有5个特性,以下选项中不属于算法特性的是( )  (2分)
  A. 有穷性
  B. 简洁性
  C. 可行性
  D. 确定性

  参考答案: B
7、若t为double类型,表达式t=1,t+5,t++执行完后,t的值是_2.0_ (2分)
  A. 1
  B. 6.0
  C. 2.0
  D. 1.0

  参考答案: C
11、设有int I=10,j=10;则printf("%d,%d\n",++I,j--)的输出是
(2分)
  A. 11, 10
  B. 9 10
  C. 10 9
  D. 10,9

  参考答案: A
13、已知x=43,ch='A',y=0;则表达式(x > = y&&ch < 'B'&&!y)的值是
(2分)
  A. 0
  B. 语法错
  C. 1
  D. “假”

  参考答案: C
20、定义如下变量:
int n=10
则下列循环的输出结果是______

while (n > 7)
{
n--;
printf("%d\n",n);
}
(2分)
  A. 10 9 8
  B. 9 8 7
  C. 10 9 8 7
  D. 9 8 7 6

  参考答案: B
21、当执行以下程序段时

x=-1;
do { x=x*x;} while(!x); (2分)
  A. 循环体将执行一次
  B. 循环体将执行两次
  C. 循环体将执行无限次
  D. 系统将提示有语法错误

  参考答案: A
30、设 int b=2;表达式b/(b*2)的值是________.

  A. 0
  B. 0.5
  C. 0.500000
  D. 0.000000

  参考答案: A
37、以下选项中合法的标识符是________。 (2分)
  A. 1_1
  B. 2013-1-1
  C. _11
  D. 1_ _

  参考答案: C
38、有以下程序 #include void fun(char*c,int d) { *c=*c+1;d=d+1; printf("%c,%c,",*c,d); } main() { char b='a',a='A'; fun(&b,a); printf("%c,%c\n",b,a); } 程序运行后的输出结果是 (2分)
  A. b,B,b,A
  B. b,B,B,A
  C. a,B,B,a
  D. a,B,a,B

  参考答案: A
39、以下选项中,不能作为合法常量的是 (2分)
  A. 1.23E+05
  B. 1.23E+05
  C. 1.234e0.5
  D. 1.23E+00

  参考答案: C
40、设有定义int a;float b;,执行scanf("%2d%f",&a,&b);语句时,若从键盘输入876<空格> 854.0<回车>,a和b的值分别是 (2分)
  A. 876和543.000000
  B. 87和6.000000
  C. 87和543.000000
  D. 76和543.000000

  参考答案: B




程序设计题(以下3题中任选2题作答,每题10分,共20分):
1、编程序统计1~1000能被3整除的数的个数。  (10分)

  参考答案:
main()
{
int a;
int i=0;
for(a=1;a < =1000;a++)
{
if(a%3==0)
i=i+1;
}
printf("%d",i);

}

参考答案是:333

333
2、编程序求出1-6000以内能被23整除的整数之和。  (10分)

  参考答案:
main()
{
int i;
long num=0;
for(i=1;i < =6000;i++)
{
if(i%23==0)
num=num+i;
}
printf("\n%ld",num);
}

本题答案:780390


                       
单选题:(每题2分,共80分)

1、以下说法中正确的是( )
(2分)
  A. C语言程序总是从第一个的函数开始执行
  B. 在C语言程序中,要调用的函数必须在main()函数中定义
  C. C语言程序总是从main()函数开始执行
  D. C语言程序中的main()函数必须放在程序的开始部分

  参考答案: C
2、以下叙述中错误的是( ) (2分)
  A. 算法正确的程序最终一定会结束
  B. 算法正确的程序可以有零个输出
  C. 算法正确的程序可以有零个输入
  D. 算法正确的程序对相同的输入一定有相同的结果

  参考答案: B
4、下面四个选项中,均是合法整型常量的选项是
(2分)
  A. 160 -0xffff 011
  B. -0xcdf 01a 0xe
  C. -0x46a 2e5 0x
  D. -0x48a 2e5 0x

  参考答案: A
6、以下选项中合法的字符常量是 (2分)
  A. "B"(字符串常量)
  B. '\010'
  C. 68
  D. D

  参考答案: B
7、设 int x=1, y=1; 表达式(!x||y--)的值是

(2分)
  A. 0
  B. 1
  C. 2
  D. -1

  参考答案: B
9、设A,B和C都是int型变量,且A=3,B=4,C=5,
则下列 表达式中,值为0的表达式是:
(2分)
  A. 'A'&&'B'
  B. A < =B
  C. A||B+C&&BC
  D. ((A= 'A' && CH < = 'Z')? (CH +32):CH

  参考答案: D
11、以下程序的输出结果是
main( )
{ int a=12,b=12;
printf("%d%d\n",--a,++b);
} (2分)
  A. 10 10
  B. 12 12
  C. 11 10
  D. 11 13

  参考答案: D
12、以下程序的输出结果是
main()
{ char c='z';
printf("%c",c-25);
}

(2分)
  A. a
  B. Z
  C. z-25
  D. y

  参考答案:  A
22、若i为整型变量,则以下循环执行次数是
for(i=2;i==0;) printf("%d",i--);
(2分)
  A. 无限次
  B. 0次
  C. 1次
  D. 2次

  参考答案: B
23、getchar函数的参数个数是( )。 (2分)
  A. 1
  B. 0
  C. 2
  D. 任意

  参考答案: B

您需要登录后才可以回帖 登录 | 立即注册 微信登录 手机动态码快速登录

本版积分规则