河北经贸大学历年C语言

本试卷为河北经贸大学历年C语言,题目包括:单项选择题。

覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。

本卷包括如下题型:

一、单项选择题

C语言

一、单项选择题 (共50题,每题2分,共计100分)

(  C  )
1、以下叙述错误的是________。
A、一个C程序可以包含多个不同名的函数
B、一个C程序只能有一个主函数
C、C程序在书写时,有严格的缩进要求,否则不能编译通过
D、C程序的主函数必须用main作为函数名
(  D  )
2、有以下程序
void fun(int*a,int n)/*fun函数的功能是将a所指数组元素从大到小排序*/
{
int t,i,j;
for(i=0;i<n一1;j++) for(j=i+1;j<n;j++) if(a[i]
}
main()
{
int c[10]={1,2,3,4,5.6,7,8,9,0 },i;
fun(c+4.6): for(i=0;i<10;i++)printf("%d,",c[i]);
printf("n"):
}
}
程序运行的结果是________。
A、1,2,3,4,5,6,7,8,9,0,
B、0,9,8,7,6,5,1,2,3,4,
C、0,9.8,7.6,5,4,3,2,1.
D、1,2,3,4,9,8,7,6,5,0,
(  D  )
3、若要定义一个具有5个元素的整型数组,以下错误的定义语句是________。
A、int a[5]={0};
B、int b[]={ 0,0,0,0,0 }
C、int c[2+3];
D、int i=5,d[i];
(  B  )
4、以下正确的描述是________.
A、continue语句的作用是结束整个循环的执行
B、只能在循环体内和switch语句体内使用break语句
C、在循环体内使用break语句或continue语句的作用相同
D、从多层循环嵌套中退出时,只能使用goto语句
(  D  )
5、有以下定义和语句
struct workers
{
int num;
char name[20];
char c;
srruct
{
int day;
int month;
int year;
}
s;
};
struct workers w,*pw;
pw=&w 能给w 中year 成员赋1980 的语句是________。
A、*pw.year=1980;
B、w.year=1980;
C、pw->year=1980;
D、w.s.year=1980;
(  D  )
6、以下能正确定义字符串的语句是________。
A、char str[]={′\064′};
B、char str="kx43";
C、char str=";
D、char str[]="\0";
(  C  )
7、有以下程序 int a=2;
int f(int *a)
{
return (*a)++;
}
main( )
{
int s=0;
{
int a=5;
s+=f(&a);
}
s+=f(&a);
printf("%d\n",s);
}
执行后输出结果是________。
A、10
B、9
C、7
D、8
(  C  )
8、已定义以下函数 fun(int *p)
{
return *p;
}
该函数的返回值是________。
A、不确定的值
B、形参p中存放的值
C、形参p所指存储单元中的值
D、形参p的地址值
(  D  )
9、英文小写字母d的ascii码为100,英文大写字母d的ascii码为
A、50
B、66
C、52
D、68
(  C  )
10、若有以下说明语句:
struct date
{
int year;
int month;
int day;
} brithday;
则下面的叙述不正确的是_____.
A、struct是声明结构体类型时用的关键字
B、struct date 是用户定义的结构体类型名
C、brithday是用户定义的结构体类型名
D、year,day 都是结构体成员名
(  C  )
11、以下关于数组的描述正确的是______。
A、数组的大小是固定的,但可以有不同的类型的数组元素。
B、数组的大小是可变的,但所有数组元素的类型必须相同。
C、数组的大小是固定的,但所有数组元素的类型必须相同。
D、数组的大小是可变的,但可以有不同的类型的数组元素。
(  C  )
12、如有说明 : char s1[5],s2[7]; 要给数组 s1 和 s2 整体赋值 , 下列语句中正确的是 __________.
A、s1=getchar(); s2=getchar();
B、scanf("%s%s",s1,s2);
C、scanf("%c%c",s1,s2);
D、gets(s1,s2);
(  A  )
13、以下对 c 语言函数的有关描述中 , 正确的是 _______.
A、在 C 中 , 调用函数时 , 只能把实参的值传送给形参 , 形参的值不能传送给实参
B、C 函数既可以嵌套定义又可以递归调用
C、函数必须有返回值 , 否则不能使用函数
D、C 程序中有调用关系的所有函数必须放在同一个源程序文件中
(  D  )
14、设x和y均为int型变量,则以下语句:"x+=y; y=x-y; x-=y; "的功能是______。
A、把x和y按从大到小排列
B、把x和y按从小到大排列
C、无确定结果
D、交换x和y中的值
(  B  )
15、执行下面的程序后,a的值为________。
#include <stdio.h>
int main()
{
int a,b;
for(a=1,b=1; a<=100; a++)
{
if(b>=20) break;
if(b%3==1)
{
b+=3;
continue;
}
b-=5;
}
printf("%d", a);
}
A、7
B、8
C、9
D、10
(  A  )
16、设int a=4,b; 则执行b=a<<1; 语句后,b的结果是________。
A、8
B、2
C、16
D、10
(  D  )
17、在下面语句中,其含义为"p为指向含n个元素的一维数组的指针变量"的定义语句是________。
A、int p [n]
B、int * p( );
C、int * p(n);
D、int( * p)[n]
(  A  )
18、设int i=3,j=3; 表达式i+++j的值是________。
A、6
B、7
C、8
D、9
(  B  )
19、下列一维数组定义正确的是________。
A、x=5;int num[x];
B、const iht x=5;float num[x];
C、const float x=5;int num[x];
D、const int x;x=5;intnum[x];
(  D  )
20、算法一般都可以用哪几种控制结构组合而成( )
A、循环、分支、递归
B、顺序、循环、嵌套
C、循环、递归、选择
D、顺序、选择、循环
(  A  )
21、下列描述中,符合结构化程序设计风格的是________。
A、使用顺序、选择和重复(循环) 三种基本控制结构表示程序的控制逻辑
B、模块只有一个入口,可以有多个出口
C、注重提高程序的存储效率
D、使用goto语句跳转
(  C  )
22、若内存按字节编址,用存储容量为32k×8bit的存储器芯片构成地址编号a0000h至dffffh的内存空间,则至少需要______片。
A、4
B、6
C、8
D、10
(  B  )
23、设有定义:long x= -123456l; 则以下能够正确输出变量x值的语句是________。
A、printf("x=%d\n",x);
B、printf("x=%1d\n",x);
C、printf("x=%8dL\n",x);
D、printf("x=%LD\n",x);
(  B  )
24、在c语言中,设有数组定义:char array[]="china"; 则数组array所占用的空间为________。
A、5个字节
B、6个字节
C、10个字节
D、12个字节
(  C  )
25、下列程序的输出结果是________。
main ()
{
int a = 4, b = 5, c;
if (a < b)
{
c = a * b;
printf ("%d,%d,%d\n", b, a, c);
}
else
{
c = b / a;
printf ("%d,%d,%d\n", b, a, c);
}
}
A、4,5,12
B、20
C、5,4,20
D、12
(  A  )
26、若x、y、z、m均为int型变量,则执行下面语句后m的值是________。
m=1;
x=2;
y=3;
m=(m<x) ? m : x;
m=(m<y) ? m : y;
m=(m<y) ? m : z;
A、1
B、2
C、3
D、4
(  A  )
27、下列语句中,正确的是______。
A、static char str[]="China";
B、static char str[];str="China";
C、static char str1[5],str2[]="China";strl=str2;
D、static char str1[],str2[];str2="China";strcpy(str1,str2);
(  A  )
28、设有以下语句,其中不是对a数组元素的正确引用的是:______(其中0≤i<6)int a[6]= {11,22,33,44,55,66 },*m=a;
A、&(*(a+i) )
B、*(&a[i])
C、m[i]
D、a[i]
(  D  )
29、下面程序的输出结果是______。
main()
{
int a[]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%d\n",*(p+8));
}
A、0
B、8
C、10
D、9
(  D  )
30、以下程序中,while循环的循环次数是______。
main()
{
int i=0;
while(i<10)
{
if(i<1) continue;
if(i==5)break;
i++;
}
......
}
A、1
B、10
C、6
D、死循环
(  D  )
31、有一个名为init.h的文件,内容如下:#define HDY(A,B) A/B#define PRINT(Y) printf("y=%d\n",Y)有以下程序
#include "init.h"main()
{
int a=1,b=2,c=3,d=4,k;
K=HDY(a+c,b+d);
PRINT(k);
}
下面针对该程序的叙述正确的是______。
A、编译出错
B、运行出错
C、运行结果为 y=0
D、运行结果为 y=6
(  A  )
32、有以下程序
void change(int k[])
{
k[0]=k[5];
}
main()
{
int x[10]={1,2,3,4,5,6,7,8,9,10}, n=0;
while(n<=4)
{
change(&x[n]);
n++;
}
for(n=0;n<5;n++) printf("%d ",x[n]);
printf("\n");
}
程序运行后输出的结果是______。
A、6 7 8 9 10
B、1 3 5 7 9
C、1 2 3 4 5
D、6 2 3 4 5
(  B  )
33、无符号二进制数后加上一个0,形成的数是原来的几倍?
A、1
B、2
C、1/2
D、4
(  D  )
34、对于64位系统,int类型能够表示的数的范围为
A、0~2的32次方
B、0~2的32次方-1
C、-2的31次方~2的31次方
D、-2的31次方~2的31次方-1
(  D  )
35、在c集成环境执行菜单命令"运行",若运行结束且没有系统提示信息,说明---。
A、源程序有语法错误
B、源程序正确无误
C、源程序有运行错误
D、源程序无编译.运行错误,但仅此无法确定其正确性
(  B  )
36、定义file *fp; 则文件指针fp 指向的是________。
A、文件在磁盘上的读写位置
B、文件在缓冲区上的读写位置
C、整个磁盘文件
D、文件类型结构体
(  B  )
37、c语言中,运算符>=属于
A、算术运算符
B、关系运算符
C、逻辑运算符
D、条件运算符
(  A  )
38、算法指的是________。
A、解决问题的方法、步骤和思路的一种描述
B、计算机程序
C、排序方法
D、数据处理
(  D  )
39、以下叙述中正确的是________。
A、逻辑"或”(即运算符||)的运算级别比算术运算要高
B、C 语言的关系表达式:0<x<10 完全等价于:(0<x)&&(x<10)
C、逻辑"非”(即运算符!)的运算级别是最低的
D、由&&构成的逻辑表达式与由||构成的逻辑表达式都有“短路”现象
(  B  )
40、有以下程序
main()
{
int i, j;
for(i=1;i<4;i++)
{
for(j=i;j<4;j++) printf("%d*%d=%d ",i,j,i*j);
printf("\n");
}
}
程序运行后的输出结果是______。
A、1*1=1 1*2=2 1*3=3
2*1=2 2*2=4 2*3=6
3*1=3 3*2=6 3*3=9
B、1*1=1 1*2=2 1*3=3
2*2=4 2*3=6
3*3=9
C、1*1=1
D、1*1=1 1*2=2
2*1=2 2*2=4
3*3=9
(  C  )
41、该语句打印结果为(每个d后都有空格)printf("%d ", printf("%d ", printf("%d ", 43)));
A、4321
B、43 43 43
C、43 3 2
D、4 3 2 1
(  D  )
42、以下叙述中正确的是________。
A、局部变量不能被说明为 static
B、只有全局变量才有自己的作用域,函数中的局部变量没有作用域
C、只有在函数内部定义的变量才是局部变量
D、只要是用户定义的标识符,都有一个有效的作用域
(  D  )
43、宏定义是最常用的预处理功能之一,它用于将一个标识符定义为一个______
A、单精度数
B、双精度数
C、常量
D、字符串
(  D  )
44、以下不正确的叙述是________。
A、在C程序中所用的变量必须先定义后使用
B、程序中,APH和aph是两个不同的变量
C、若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变
D、当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值
(  A  )
45、以下数据中,不正确的数值或字符常量是________。
A、c
B、66
C、0xaa
D、50
(  D  )
46、函数的形式参数隐含的存储类型说明是________。
A、extern
B、static
C、register
D、auto
(  B  )
47、表达式,0x13&0x17的值是________。
A、0x17
B、0x13
C、0xf8
D、0xec
(  D  )
48、若有以下定义和语句: int a[10]={1,2,3,4,5,6,7,8,9,10}
, *p=a;
不能表示a数组元素的表达式是________。
A、*p
B、a[9]
C、*p++
D、a[*p-a]
(  D  )
49、下列哪个数组定义是正确的________。
A、int a[5)5];
B、INT a[10];
C、int a[n];
D、int a[3+2];
(  A  )
50、从键盘上输入某字符串时,不可使用的函数是()。
A、getchar()
B、gets()
C、scanf()
D、fread()