C语言二级考试试题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.若i,j和k都是int型变量,则表达式(i=4,j=16,k=32,i=j)的值为
A. 4
B. 16
C. 32
D. 52
2.若有函数内部说明:int a[3][4];则数组a中各元素
A. 可在程序的运行阶段得到初值0
B. 可在程序的编译阶段得到初值0
C. 不能得到确定的初值
D. 可在程序的编译或运行阶段得到初值0
3.一个C语言程序是由
A. 一个主程序和若干子程序组成
B. 函数组成
C. 若干过程组成
D. 若干子程序组成
4.若有说明 int a[2][4];则a数组元素的非法引用是
A. a[0][2*1]
B. a[1][3]
C. a[4-3][0]
D. a[0][4]
5.阅读下面程序,则执行后的输出结果是___。
#include "stdio.h"
main()
{int x,y,z;
x=1;y=2;z=3;
if(x>y)if(x>z)printf("%d",x);
else printf("%d",y);
printf("%d\n",z);
}
A. 0
B. 1
C. 2
D. 3
6.下面程序的输出结果为
main()
{ int a,b;b=(a=3*5,a*4,a*5);
printf("%d",b ;}
A. 60
B. 75
C. 65
D. 无确定值
7.下列选项中不是结构化程序基本结构的是
A. 顺序结构
B. 跳转分支结构
C. 选择结构
D. 循环结构
8.所有C函数的结构都包括的三部分是
A. 语句、花括号和函数体
B. 函数名、语句和函数体
C. 函数名、形式参数和函数体
D. 形式参数、语句和函数体
9.设int a=5,b=6,表达式(--b==6)?++a:--b的值是___
A. 5
B. 6
C. 7
D. 4
10.下列叙述中不是C语言的特点的是______。
A. 简洁、紧凑,使用方便、灵活,易于学习和应用
B. C语言是面向对象的程序设计语言
C. C语言允许直接对位、字节和地址进行操作
D. C语言数据类型丰富、生成的目标代码质量高
11.下列关于C语言注释的叙述中错误的是______。
A. 以“/*”开头并以“*/”结尾的字符串为C语言的注释符
B. 注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义
C. 程序编译时,不对注释作任何处理
D. 程序编译时,需要对注释进行处理
12.s1和s2已正确定义并分别指向两个字符串。
若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是
A. if(s1>s2)S;
B. if(strcmp (s1,s2))S;
C. if(strcmp(s2,s1)>0) S;
D. if(strcmp (s1,s2)>0)S;
13.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为___ 。
for(i=0, j=10; j>=i; i++, j--)
k=i+j;
A. 10
B. 20
C. 8
D. 0
14.已知:int c[3][4];则对数组元素引用正确的是
A. c[1][4]
B. c[1.5][0]
C. c[1+0][0]
D. 以上表达都错误
15.以下不能正确进行字符串赋初值的语句为
______。
A. char str[5]="good!"
B. char str[]="good!"
C. char *str="good!"
D. char str[5]={'g','o','o','d'}
16.若以下变量均是整型,且num=sum=7;则计算表达式sum=num++,sum++,++num执行后sum的值为
A. 7
B. 8
C. 9
D. 10
17.设以下变量均为int类型,则值等于3的表达式是
A. (x=y=2,x+y,x+1)
B. (x=y=6,x+y,y+1)
C. (x=6,y=6,x+y)
D. (y=6,y+1,x=y)
18.有以下程序
main()
{ int i=10;
printf("%d\n",i++);
}
执行后输出结果是
A. 9
B. 10
C. 11
D. 8
19.main()
{ char a[]={ ′a′, ′b′, ′c′,′d′, ′e′, ′f′, ′g′,′h′,′\0′}; int i;
i=strlen(a);
printf("%d\b",i);
}
程序运行后的输出结果是
A. 9
B. 10
C. 7
D. 8
20.以下不正确的定义语句是
A. double x[5]={2.0,4.0,6.0,8.0,10.0};
B. int y[5.3]={0,1,3,5,7,9};
C. char c1[]={′1′, ′2′, ′3′, ′4′, ′5′};
D. char c2[]={′\x10′, ′\xa′, ′\x8′};
21.以下程序输入3课整数给a、b、c;程序把b中的值给a,把c中的值给b,把a中的值给c,然后输出a、b、c的值,请填上空缺的语句:#include
void main()
{
int a,b,c;
int temp;
printf("Enter a,b,c:")
scanf("%d%d%d",&a,%b,&c);
temp=a;
a=b;
b=c;
______________
printf("a=%d b=%d c=%d\n",a,b,c);
}
22.分析以下程序,写出此程序的运行结果:
#include
int x,y;
int s( )
{ int z;
x=3; y=4;
z=x+y;
return(z);
}
void main( )
{
int n;
x=1; y=2;
n=s( );
printf("n=%d",n+x+y);
}
23.分析如下程序,此程序运行时输出结果是:
#include
void test(int *x,int *y);
void main()
{
int a=10,b=20;
test(&a,&b);
printf("%d",a);
}
void test( int *x,int *y)
{
int t;
t=*x;*x=*y;*y=t;
}
24.下面程序是计算n的阶乘,n是由键盘输入,最后显示出s的值,请找出此程序中错误的语句:
#include
void main( )
{ float s=1,i,n;
scanf("%d",&n);