⼀、选择题
(1)下列关于栈叙述正确的是
A)栈顶元素最先能被删除 
B)栈顶元素最后才能被删除
C)栈底元素永远不能被删除
D)以上三种说法都不对
(2)下列叙述中正确的是
A)有⼀个以上根结点的数据结构不⼀定是⾮线性结构
B)只有⼀个根结点的数据结构不⼀定是线性结构
C)循环链表是⾮线性结构
D)双向链表是⾮线性结构
(3)某⼆叉树共有7个结点,其中叶⼦结点只有1个,则该⼆叉树的深度为(假设根结点在第1层)
A)3
B)4
C)6
D)7
(4)在软件开发中,需求分析阶段产⽣的主要⽂档是
A)软件集成测试计划
B)软件详细设计说明书
C)⽤户⼿册
D)软件需求规格说明书
(5)结构化程序所要求的基本结构不包括
A)顺序结构
B)GOTO跳转
C)选择(分⽀)结构
D)重复(循环)结构
(6)下⾯描述中错误的是
A)系统总体结构图⽀持软件系统的详细设计
B)软件设计是将软件需求转换为软件表⽰的过程
C)数据结构与数据库设计是软件设计的任务之⼀
D)PAD图是软件详细设计的表⽰⼯具
(7)负责数据库中查询操作的数据库语⾔是
A)数据定义语⾔ 
B)数据管理语⾔
C)数据操纵语⾔ 
D)数据控制语⾔
(8)⼀个教师可讲授多门课程,⼀门课程可由多个教师讲授。则实体教师和课程间的联系是
A)1:1联系
B)1:m联系 
C)m:1联系
D)m:n联系
(9)有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是
A)⾃然连接
B)交
C)除
D)并
(10)定义⽆符号整数类为UInt,下⾯可以作为类UInt实例化值的是
A)-369
B)369
C)0.369
D)整数集合{1,2,3,4,5}
(11)计算机⾼级语⾔程序的运⾏⽅法有编译执⾏和解释执⾏两种,以下叙述中正确的是
A)C语⾔程序仅可以编译执⾏
B)C语⾔程序仅可以解释执⾏
C)C语⾔程序既可以编译执⾏⼜可以解释执⾏
D)以上说法都不对
(12)以下叙述中错误的是
A)C语⾔的可执⾏程序是由⼀系列机器指令构成的
B)⽤C语⾔编写的源程序不能直接在计算机上运⾏
C)通过编译得到的⼆进制⽬标程序需要连接才可以运⾏
D)在没有安装C语⾔集成开发环境的机器上不能运⾏C源程序⽣成的.exe⽂件
(13)以下选项中不能⽤作C程序合法常量的是
A)1,234
B)'\123' 
C)123
D)"\x7G"
(14)以下选项中可⽤作C程序合法实数的是
A).1e0
B)3.0e0.2 
C)E9
D)9.12E
(15)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是
A)a=(b=4)=3;
B)a=b=c+1;
C)a=(b=4)+c;
D)a=1+(b=c=4);
(16)有以下程序段
char name[20];
int num;
scanf("name=%snum=%d",name;&num);
当执⾏上述程序段,并从键盘输⼊:name=Lili num=1001后,name的值为
A)Lili   
B)name=Lili
C)Lilinum=   
D)name=Lili num=1001
(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是
A)必须是逻辑值
B)必须是整数值
C)必须是正数
D)可以是任意合法的数值
(18)有以下程序
#include
main()
{ int x=011;
printf("%d\n",++x);
}
程序运⾏后的输出结果是
A)12
B)11
C)10
D)9
(19)有以下程序
#include
main()
{ int s;
scanf("%d",&s);
while(s>0)
{ switch(s)
{ case 1:printf("%d",s+5);
case 2:printf("%d",s+4);break;
case 3:printf("%d",s+3);
default:printf("%d",s+1);break;
}
scanf("%d",&s);
}
}
运⾏时,若输⼊1 2 34 5 0,则输出结果是
A)6566456
B)66656
C)66666
D)6666656
(20)有以下程序段
for(i=0;i<8;i++)
{n=rand()%5;
switch (n)
{ case 1:
case 3:printf("%d\n",n); break;
case 2:
case 4:printf("%d\n",n);continue;
case 0:exit(0);
}
printf("%d\n",n);
}
以下关于程序段执⾏情况的叙述,正确的是
A)for循环语句固定执⾏8次
B)当产⽣的随机数n为4时结束循环操作
C)当产⽣的随机数n为1和2时不做任何操作
D)当产⽣的随机数n为0时结束程序运⾏
(21)有以下程序
#include
main()
{ chars[]="012xy\08s34f4w2";
int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>='0'&&s[i]<='9')n++;
printf("%d\n",n);
}
程序运⾏后的输出结果是
A)0
B)3
C)7
D)8
(22)若i和k都是int类型变量,有以下for语句
for(i=0,k=-1;k=1;k++)printf("*****\n");
下⾯关于语句执⾏情况的叙述中正确的是
A)循环体执⾏两次 
B)循环体执⾏⼀次
C)循环体⼀次也不执⾏ 
D)构成⽆限循环
(23)有以下程序
#include
main()
{ char b,c;int i;
b='a'; c='A';
for(i=0;i<6;i++)
{ if(i%2) putchar(i+
B);
else putchar(i+
C);
}
printf("\n");
}
程序运⾏后的输出结果是
A)ABCDEF
B)AbCdEf
C)aBcDeF
D)abcdef
(24)设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读⼊数据的正确语句是
A)scanf("%f",&x[6]);
B)scanf("%lf",*(x+6));
C)scanf("%lf",p+6);
D)scanf("%lf",p[6]);
(25)有以下程序(说明:字母A的ASCII码值是65)
voidfun(char *s)
{ while(*s)
{ if(*s%2) printf("%c",*s);
s++;
}
}
main()
{ char a[]="BYTE";
fun(a);
printf("\n");
}
程序运⾏后的输出结果是
A)BY
B)BT
C)YT
D) YE
(26)有以下程序段
#include
main()
{ …
while( getchar()!='\n');
}
以下叙述中正确的是
A)此while语句将⽆限循环
B) getchar()不可以出现在while语句的条件表达式中
C)当执⾏此while语句时,只有按回车键程序才能继续执⾏
D)当执⾏此while语句时,按任意键程序就能继续执⾏
(27)有以下程序
#include
main()
{ int x=1,y=0;
if(!x) y++;
else if(x==0)
if (x) y+=2;
else y+=3;
printf("%d\n",y);
}
程序运⾏后的输出结果是
A)3
B)2
C)1
D) 0
计算机二级c语言选择题库(28)若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是
A)p=s;
B)p=k;
C)p=s[0];
D)k=s;
(29)有以下程序
#include
voidfun(char *
C)
{ while(*
C)
{if(*c>='a'&&*c<='z') *c=*c-('a'-'A');
c++;
}
}
main()
{ chars[81];
gets(s);
puts(s);
}
当执⾏程序时从键盘上输⼊HelloBeijing,则程序的输出结果是
A)hello beijing
B)Hello Beijing
C)HELLO BEIJING
D)hELLO Beijing
(30)以下函数的功能是:通过键盘输⼊数据,为数组中的所有元素赋值。#include
#define N 10
void fun(intx[N])
{ int i=0;
while(i}
在程序中下划线处应填⼊的是
A)x+i
B)&x[i+1] 
C)x+(i++)
D)&x[++i]
(31)有以下程序
#include
main()
{ chara[30],b[30];
scanf("%s",a);
gets(
B);
printf("%s\n %s\n",a,
B);
}
程序运⾏时若输⼊:
how areyou? I am fine
则输出结果是
A)how areyou?
B)how
I am fine are you? I am fine
C)how areyou? I am fine
D)how are you?
(32)设有如下函数定义
int fun(intk)
{ if(k<1) return 0;
elseif(k==1) return 1;
else returnfun(k-1)+1;
}
若执⾏调⽤语句:n=fun(3);,则函数fun总共被调⽤的次数是
A)2
B)3
C)4
D)5
(33)有以下程序
#include
int fun (int x,int y)
{ if(x!=y) return ((x+y)/2);
else return (x);
}
main()
{ inta=4,b=5,c=6;
printf("%d\n",fun(2*a,fun(b,
C)));
}
程序运⾏后的输出结果是
A)3
B)6

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。