2011年上计算机c试卷

2011年上计算机c试卷
2011年上计算机c试卷

(二级C语言程序设计)

一、单项选择题(每题1分,共40分)

1.计算机可以与象棋大师进行下棋比赛,这属于计算机在_A_方面的应用。

A) 人工智能B) 科学计算C) 数据处理D) 计算机辅助设计2.计算机运算器的主要功能是_D_。

A) 实现算术运算B) 实现逻辑运算

C) 分析指令并进行译码D) 实现算术运算和逻辑运算

3.计算机存储器中1KB表示的是_D_个字节。

A) 128 B) 256 C) 512 D) 1024

4.在计算机系统层次结构中,位于最内层的是_A_。

A) 硬件系统B) 软件系统C) 程序D) 数据

5.Windows启动时将自动执行“程序”菜单中的“_C_”菜单项所包含的应用程序。

A) 程序B) 附件C) 启动D) 游戏

6.计算机正在运行状态下,直接关闭电源可能产生的后果是_D_。

A) 破坏系统设置B) 造成数据丢失

C) 造成下次启动故障D) 以上情况均有可能

7.下列不属于计算机病毒特征的是_C_。

A) 破坏性B) 潜伏性C) 免疫性D) 传染性

8.下列选项中,不属于多媒体计算机硬件的是_B__。

A) 音响设备B) 加密卡C) 音频卡D) 视频卡

9.根据所覆盖的地理范围分类,“中国教育科研网”属于_A_。

A) 广域网B) 城域网C) 局域网D) 企业网

10.将高级语言编写的程序翻译成机器语言程序,采用的两种方式是_B_。

A) 编译和汇编B) 编译和解释C) 编译和链接D) 解释和汇编

11.C语言程序总是从_C_开始执行。

A) 第一条语句B) 第一个函数C) 主函数D) 子程序

12.以下选项中正确的C语言标识符是_C_。

A) a+b B) 3Dmax C) _123D) %d

13.以下选项中正确表示字符型常量的是_A_。

A) '\t'B) "a" C) 'abc' D) '279'

14.以下选项中属于C语言基本数据类型的是_B_。

A) 逻辑型B) 双精度型C) 复数型D) 集合型

15.已知:int a=8,b=5,c;,则执行语句c=a%b+0.3;后,c的值是_C_。

A) 1 B) 1.3 C) 3D) 3.3

16.已知:int a=5,b=6,c=7,d=8,m=2,n=2;,则执行语句(m=a>b)&&(n=c>d);后,n的值为_A_。

A) 0B) 1 C) 2 D) 3

17.已知字符'A'的ASCII码值为十进制数65,则执行语句printf("%c",'A'+2);后,输出结果是_B_。

A) A B) C C) 65 D) 67

18.已知:int i=1;,则执行语句printf("%d",i++);后,输出结果是_A_。

A) 1 B) 2 C) -1 D) -2

19.以下选项中,和语句x*=y+2;等价的是_D_。

A) x=x*y+2; B) y=x*(y+2); C) x=y+2*x; D) x=x*(y+2);

20.以下选项中能正确判断字符变量c不是

..大写字母的表达式是_D_。

A) c<'A' && c>'Z' B) !(c<'A' && c>'Z')

C) c>='A' || c<='Z' D) !(c>='A' && c<='Z')

21.已知:float a=7.0,b=2.5;,则表达式(int)a/(int)b的值是_C_。

A) 2 B) 2.8 C) 3D) 3.5

22.已知:int a,b,c;,若要给变量a、b、c输入数据,以下正确的输入语句是_D_。

A) scanf ("%d,%d,%d",a,b,c); B) scanf ("%d,%d,%d",&a;&b;&c);

C) scanf ("%d,%d,%d",&a&b&c); D) scanf ("%d,%d,%d",&a,&b,&c); 23.已知:int a=1,b=2;,则执行语句printf("%d",a>b?a:b);后,输出结果是_C_。

A) 0 B) 1 C) 2 D) 以上都不正确24.以下选项中叙述正确的是_A_。

A) 在switch语句中,不一定使用break语句

B) break语句必须与switch语句中的case配合使用/*循环中跳出来*/

C) 在switch语句中必须使用default

D) break语句只能用于switch语句中

25.执行以下程序后,输出结果是_B_。

#include

void main()

{ int a=3,b=-1,c=1;

if (ab 不成立*/

if (b<0) c=0;

else c++;

printf("%d\n",c);

}

A) 0 B) 1 C) 2 D) 3

26.已知数学关系式x≥y≥z,以下选项中能正确表示该关系式的C语言表达式是_A_。

A) (x>=y)&&(y>=z) B) (x>=y)AND(y>=z) C) x>=y>=z D) (x>=y)||(y>=z) 27.已知:int i=5;,则执行语句while(i<8) i+=2;后,变量i的值是_D_。

A) 5 B) 7 C) 8 D) 9

28.执行以下程序后,输出结果是_D_。

#include

void main( )

{ int n=9;

while(n>6) {n--;printf("%d",n);}

}

A) 987 B) 9876 C) 8765 D) 876

29.执行以下程序后,输出结果是_A_。

#include

void main( )

{ int i,s=0;

for (i=1;i<=6;i++)

{ if(i%3==0) break;

s+=i;

}

printf("%d\n",s);

}

A) 3 B) 6 C) 12 D) 21

30.已知:int x[3][3]={1,2,3,4,5,6,7,8,9};,则执行语句printf("%d",x[1][2]);后,输出结果是_C_。

A) 2 B) 5 C) 6 D) 7

31.以下选项中能实现将两个字符串s1和s2连接起来的语句是_B_。

A) strcpy(s1,s2); B) strcat(s1,s2); C) strcmp(s1,s2); D) strlen(s1,s2); 32.C语言中,关于函数说法正确的是_B_。

A) 函数定义可以嵌套,但函数调用不可以嵌套

B) 函数定义不可以嵌套,但函数调用可以嵌套

C) 函数定义和函数调用均不可以嵌套

D) 函数定义和函数调用均可以嵌套

33.一个C语言源文件中定义的全局变量的作用域是_D_。

A) 本函数的全部范围B) 本程序全部范围

C) 本文件全部范围D) 从定义开始至本文件结束

34.执行以下程序后,输出结果是_B_。

#include

void sub(int x,int y,int *z)

{ *z=y-x; }

void main( )

{ int a;

sub(10,5,&a);

printf("%d",a);

}

A) 5 B) -5 C) 0 D) 不确定

35.已知:int x,*p;,则以下赋值语句中正确的是_A_。

A) p=&x; B) p=*x; C) &x=*p; D) *p=*x;

36.已知:char str[ ]="Hello",*ptr =str;,则表达式*(ptr+5)的值为_B_。

A) 'o' B) '\0' C) 'o'的地址D) 不确定

37.执行以下程序后,输出结果是_C_。

#include

#define F(X) X+X /*机械替换*/

void main( )

{ int a=5;

printf("%d",2*F(a)); /*2*F(a)=2*a+a*/

}

A) 5 B) 10 C) 15 D) 20

38.已知:

struct student

{ int age;

int num;

}stu,*p=&stu;

以下对结构体变量stu中成员age的非法

..引用是_D_。

A) stu.age B) (*p).age C) p->age D) p.age

39.已知:

union

{ char c;

float a;

}test;

则sizeof(test)的值是_B_。

A) 1 B) 4 C) 5 D) 8

40.已知:FILE *fp;,则以下选项中以读写方式打开一个已经存在的文件"file1"的语句是_D_。

A) fp=fopen("file1","a"); B) fp=fopen("file1","w");

C) fp=fopen("file1","r"); D) fp=fopen("file1","r+"); /*读写*/

二、填空题(每空2分,共20分)

1.数学式ac b 42 写成C 语言表达式是_sqrt(b*b-4*a*c)_。

2.已知int a=10,b=15;,则表达式!a

3.已知float x=1.234;,则执行语句printf("%.2f",x);后,输出结果是_____1.23______。

4.已知int a,b,c;,则执行语句a=5+(b=6,c=4);后,变量a 的值是____9_______。

5.已知int x; for(x=10;x>4;x--);,则该循环共执行_____6______次。

6.已知float a[2][3];,则系统为数组a 分配的存储空间是_____24______字节。

7.已知char *p="Good\0Morning!";,则表达式strlen(p)的值是_____4______。

8.设有函数调用语句f(x,(x,y,z));,则该调用语句中实参的个数是_____2______。

9.已知int a[5]={1,3,5,7,9},*p=a;,则表达式*p+3的值是_____4______。/* *p 的内容+3,故为4*/

10.已知int a=4,b;,则执行语句b=a<<2;后,变量b 的值是_____4___。/*左移一位*2,右移一位/2*/

三、阅读理解题(每题4分,共20分)

1. 以下程序的运行结果是_____Saturday______。

#include

void main( )

{

int week=6;

switch(week)

{

case 1: printf("Monday");break;

case 2: printf("Tuesday");break;

case 3: printf("Wednesday");break;

case 4: printf("Thursday");break;

case 5: printf("Friday");break;

case 6: printf("Saturday");break;

case 7: printf("Sunday");break;

default:printf("Error");

}

}

2. 以下程序的运行结果是_____s=-5_______。

#include

void main( )

{

int s=0,f=1,i;

for(i=1;i<=10;i++)

{ s=s+i*f;

f=f*(-1);

}

printf("s=%d",s);

}

3. 以下程序的运行结果是_max=29,r=1,c=2_。

#include

void main( )

{ i nt a[3][3]={{1,23,6},{7,20,29},{14,25,17}};

int i,j,max,r,c;

max=a[0][0], r=0,c=0;

for (i=0;i<3;i++)

for (j=0;j<3;j++)

if (a[i][j]>max) {max=a[i][j]; r=i; c=j; }

printf("max=%d,r=%d,c=%d",max, r, c);

}

4. 以下程序运行结果是__s=10__。

#include

void main()

{

int i,s=0;

for(i=1;i<=3;i++)

{

static int a=0; /*记忆效果,相当于把int a=0放在循环外面*/

a=a+i;

s=s+a;

}

printf("s=%d",s);

}

5. 以下程序运行结果是__s=13__。

#include

int f(int n)

{

if(n<=1)

return 1;

else

return 2*f(n/2); /*递归调用*/

}

void main()

{

int i,s=0;

for(i=1;i<=5;i++)

s=s+f(i);

printf("s=%d",s);

}

四、编程题(第1题6分,第2、3题各7分,共20分)

1.(6分)编程从键盘输入一个正整数,判断其个位数是否为5,若是5则输出"Yes",否则输出"No"。

2.(7分)利用循环语句编写程序,计算s=1+2+3+...+99+100+99+...+3+2+1并输出结果。

3.(7分)设有15位的由0、1组成的字符串(注:字符串中至少含有1个'1')。现统计其中字符'1'的个数,若'1'的个数为偶数,在其后补'0',否则补'1'。

例如:

101100111100101

因为字符'1'的个数等于9,所以补'1',得到新字符串:

1011001111001011

编写函数void OECheck(char s[])完成以上功能。

#include

#include

void OECheck(char s[])

{

}

void main()

{

char s[17]="101100111100101";

OECheck(s);

printf("%s\n",s);

}

(1)#include main()

{

}

相关主题