一、选择题
1.结构化程序设计的 3 种结构是 (D)
A)顺序结构、选择结构、转移结构
B)分支结构、等价结构、循环结构
C)多分支结构、赋值结构、等价结构
D)顺序结构、选择结构、循环结构
2.以下叙述中正确的是 (C)
A)C 语言比其他语言高级
B)C 语言可以不用编译就能被计算机识别执行
C)C 语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C 语言出现的最晚,具有其他语言的一切优点
3.C语言中用于结构化程序设计的 3 种基本结构是 (A)
A)顺序结构、选择结构、循环结构
B)if,switch,break
C)for,while,do-while
D)if,for,continue
4.C语言中最简单的数据类型包括(B)
A)整型、实型、逻辑型
B)整型、实型、字符型
C)整型、字符型、逻辑型
D)字符型、实型、逻辑型
5.若变量已正确定义并赋值,以下符合 C 语言语法的表达式是 (B) A)a:=b+1
B)a=b=c+2
C)int 18.5%3
D)a=a+7=c+b
6.下列可用于 C 语言用户标识符的一组是(B)
A)void, define, WORD
B)a3_b3, _123,Car
C)For, -abc, IF Case
D)2a, DO, sizeof
7. C语言中运算对象必须是整型的运算符是(A)
A)%=
B)/
C)=
D)<=
8.若变量 a,i已正确定义,且i已正确赋值,合法的语句是(B)
A)a= =1
B)++i ;
C)a=a++=5;
D)a=int (i );
9.已知
int t=0;
while(t=1)
{...}
则以下叙述正确的是 (B)
A)循环控制表达式的值为0
B)循环控制表达式的值为1
C)循环控制表达式不合法
D)以上说法都不对
10.若变量已正确说明为float型,要通过语句
scanf("%f%f%f",&a,&b,&c);
给 a 赋予 10.0 , b 赋予 22.0 , c 赋予 33.0 ,下列不正确的输入形式是 (B) A)10<回车 >22<回车 >33<回车 >
B)10.0,22.0,33.0<回车>
C)10.0< 回车 >22.0< 空格 >33.0< 回车 >
D)10<<空格 >>22<回车 >33<回车 >
11.有如下程序:
main()
{
int x=1,a=0,b=0;
switch (x)
{
case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是 (A)
A)a=2,b=1
B)a=1,b=1
C)a=1,b=0
D)a=2,b=2
12.有以下程序
main()
{
int i=1,j=1,k=2;
if((j++||k++)&&i++)
printf("%d,%d,%d\n",i,j,k);
}
执行后输出结果是 (C)
A)1,1,2
B)2,2,1
C)2,2,2
D)2,2,3
13.
有如下程序
main()
{
float x=2.0,y;
if (x<0.0 ) y=0.0;
else if(x<10.0)y=1.0/x;
else y=1.0;
printf("%f\n",y);
}
该程序的输出结果是 (C)
A)0.000000
B)0.250000
C)0.500000
D)1.000000
14.有如下程序:
main()
{
int n=9;
while(n>6)
{
n--;
printf("%d",n);
}
}
该程序的输出结果是 (B)
A)987
B)876
C)8765
D)9876
15.在下列选项中,没有构成死循环的是(D)
A)int i=100;
while(1)
{
i=i 0+1;
if(i>100)break;
}
B)for(;;);
C)int k=10000;
do{
k++;
}while(k>10000);
D)int s=36 ;
while(s)--s;
16.设 int x=1,y=1;表达式(!x||y--)的值是(B)
A)0
B)1
C)2
D)-1
17.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(D) A)函数调用可以作为独立的语句存在
B)函数调用可以作为一个函数的实参
C)函数调用可以出现在表达式中
D)函数调用可以作为一个函数的形参
18.有以下程序
float fun(int x,int y)
{
return(x+y);
}
main()
{
int a=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));
}
程序运行后的输出结果是(B)
A)编译出错
B)9
C)21
D)9.0
19.若有以下调用语句,则不正确的fun 函数的首部是 (D)
main()
{
int a[50],n;
?
fun(n,&a[9]);
?
}
A)void fun(int m,int x[])
B)void fun(int s,int h[41])
C)void fun(int p,int *s)
D)void fun(int n,int a)
20.fseek 函数的正确用形式是 (B)
A)fseek( 文件指 , 起始点 , 位移量 )
B)fseek( 文件指 , 位移量 , 起始点 )
C)fseek( 位移量 , 起始点 , 文件指 )
D)fseek( 起始点 , 位移量 , 文件指 )
21.若 fp 是指向某文件的指,且已到文件末尾,函数feof(fp)的返回是 (C)
A)EOF
B)-1
C)1
D)NULL
22.若有明句: char c='\72';量c (A)
A)包含 1 个字符
B)包含 2 个字符
C)包含 3 个字符
D)明不合法, c 的不确定
23.若有明 int a[3][4]; a 数元素的非法引用是 (D)
A)a[0][2*1]
B)a[1][3]
C)a[4-2][0]
D)a[0][4]
24.有以下明句
struct stu
{
int a;
float b;
}stutype;
下面的叙述不正确的是(C)
A)struct是构体型的关字
B)struct stu是用户定义的结构体类型
C)stutype是用户定义的结构体类型名
D)a 和 b 都是结构体成员名
25.在 C 语言中,引用数组元素时,其数组下标的数据类型允许是(C) A)整型常量
B)整型表达式
C)整型常量或整型表达式
D)任何类型的表达式
26.若运行时给变量x 输入 12,则以下程序的运行结果是(A)
main()
{
int x,y;
scanf("%d",&x);
y=x>12?x+10:x-12;
printf("%d\n",y);
}
A)0
B)22
C)12
D)10
27.以下说法正确的是 (C)
A)C 语言程序总是从第一个的函数开始执行
B) 在 C 语言程序中,要调用函数必须在 main() 函数中定义
C)C 语言程序总是从 main() 函数开始执行
D)C 语言程序中的 main() 函数必须放在程序的开始部分
28.表达式 0x13^0x17 的值是 (A)
A)0x04
B)0x13
C)0xE8
D)0x17
29.有以下程序
main()
{
int a=3, b=4;
printf("%d\n", (a++)*(b++));
}
程序运行后的输出结果是(A)
A)12
B)15
C)16
D)20
30.下列程序执行后的输出结果是(A)
void func(int *a,int b[])
{
b[0]=*a+6;
}
main()
{
int a,b[5];
a=0; b[0]=3;
func(&a,b);
printf("%d\n",b[0]);
}
A)6
B)7
C)8
D)9
31.若有下面的程序段:
char s[]="china";char *p; p=s;
则下列叙述正确的是 (D)
A)s 和 p 完全相同
B)数组 s 中的内容和指针变量p 中的内容相等
C)s 数组长度和 p 所指向的字符串长度相等
D)*p 与 s[0] 相等
32.以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序void sort(int a[],int n)
{
int i,j,t;