广西艺术学院计算机C语言模拟

本试卷为广西艺术学院计算机C语言模拟,题目包括:单项选择题,填空题,编程题。

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

计算机C语言模拟

一、单项选择题 (共20题,每题2分,共计40分)

(  A  )
1、有以下程序
main()
{
int a,b,c=246;
a=c/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
输出结果是________。
A、2,1
B、3,2
C、4,3
D、2,-1
(  D  )
2、下面程序输出的是________。
main()
{
int t=l;
fun(fun(t));
}
fun(int h)
{
static int a[3]={1,2,3};
int k;
for(k=0;k<3;k++)a[k]+=a[k]-h;
for(k=0;k<3;k++)printf("%d",a[k]);
printf("\n");
return(a[h]);
}
A、1,2,3,
1,5,9,
B、1,3,5,
1,3,j,
C、1,3,5,
0,4,8,
D、1,3。5,
-1,3,7,
(  B  )
3、下列程序的运行结果是________。
void main()
{
int s=0,k;
for(k=7;k>1;k--)
{
switch(k)
{
case 1: case 4: case 7: s++: break;
case 2: case 3: case 6:break;
case 0: case 5: s+=2: break;
}
}
printf("s=%d",s);
}
A、s=3
B、s=4
C、s=5
D、无输出结果
(  B  )
4、c语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为________.
A、地址传递
B、单向值传递
C、由实参传给形参,再由形参传回给实参
D、由用户指定传递方式
(  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、若有说明 :char c[10]= { 'e','a','s','t','\0' };, 则下述说法中正确的是 __ __________.
A、c[7] 不可引用
B、c[6] 可引用 , 但值不确定
C、c[4] 不可引用
D、c[4] 可引用,其值为空字符
(  D  )
7、以下函数 func() 的功能是:使具有 n 个元素的一维数组 b 的每个元素的值都增加 2 ,划线处应填入 _____.
func(int b[ ],int n)
{
int ;
for(i=0;i<n;i++) __________;
}
A、b[i++]
B、b[i]++
C、b[i+=2]
D、b[i]+=2
(  A  )
8、在下列字符中,其ascii码值最小的一个是________。
A、控制符
B、0
C、A
D、a
(  C  )
9、若有以下定义:int t[3][2]; 能正确表示t数组元素地址的表达式是______。
A、&t[3][2]
B、t[3]
C、t[1]
D、*t[2]
(  A  )
10、下列描述说明正确的是________。
A、定义结构体时,它的每个成员的数据类型可以不同
B、不同结构体的成员名不能相同
C、结构体定义时,其成员的数据类型不能是结构体本身
D、结构体定义时各成员项之间可用分号也可用逗号隔开
(  D  )
11、下列能正确定义字符串的语句是________。
A、char str[]='\64';
B、char str="kx43";
C、char str=";
D、char str[]="\0";
(  C  )
12、已知英文字母m的ascii码值为6dh,那么ascii码值为70h的英文字母是________。
A、P
B、Q
C、p
D、j
(  C  )
13、\、/、mod、*等4个算术运算符中,优先级最低的是________。
A、\
B、/
C、Mod
D、*
(  D  )
14、若有定义,int*f(); 则下列描述中正确的是________。
A、一个用于指向整型数据的指针变量
B、一个用于指向一维数组的指针
C、一个用于指向函数的指针变量
D、一个返回值为指针型的函数名
(  D  )
15、在16位编译器环境下,double类型占多少字节?
A、2
B、4
C、1
D、8
(  B  )
16、请选出合法的c语言赋值语句。( )
A、a=b=58
B、i++;
C、a=58,b=58
D、k=int(a+b);
(  C  )
17、下列不正确的转义字符是________。
A、\\'
B、\"
C、074'
D、\0'
(  C  )
18、以下程序的输出结果是 _______ 。
main( )
{
int i=0,s=0;
for (;;)
{
if (i==6) break;
i++;
s+=i;
}
printf("%d\n",s);
}
A、10
B、15
C、21
D、死循环
(  C  )
19、enum a
{
sum=9,mon=-1,tue
}
;
定义了________。
A、枚举变量
B、3个标识符
C、枚举数据类型
D、整数9和-1
(  C  )
20、结构化程序设计所规定的三种基本控制结构是()。
A、输入、处理、输出
B、树形、网形、环形
C、顺序、选择、循环
D、主程序、子程序、函数

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

1、设p=30,那么执行q=(++p)后,表达式的结果q为 ________ ,变量p的结果为 ________ 。 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 ________ 。
2、请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。 ________ ( double,double);
main()
{
double x,y;
scanf("%lf%lf",&x,&y);
printf("%lf\n",max(x,y));
}
double max(double a,double b)
{
return(a>b ? a:b);
}
3、有一下程序
#include <stdio.h>
main()
{
int f,f1,f2,i;
f1=0;
f2=1;
printf("%d %d ",f1,f2);
for(i=3;i<=5;i++)
{
f=f1+f2;
printf("%d",f);
f1=f2;
f2=f;
}
printf("\n");
}
程序运行后的输出结果是 ________。
4、在c语言中,在调用一个函数的过程中又出现__________或间接地调用该函数本身,这一现象称为函数的递归调用。
5、设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为 ()
6、若要定义一个单精度实型变量f,则应该使用的定义语句为________。
7、结构化程序三种结构为________。
8、函数swap(arr,n) 可完成对arr 数组从第一个元素到第n 个元素两两交换。在运行调用函数中的如下语句后, a[0]和a[1]的值分别为【1】________,原因是【2】________。a[0]=1,a[1]=2;
swap(a,2);
9、以下程序输出的结果是 ________。
int ff(int n)
{
static int f=l;
f=f*n;
return f;
}
main()
{
int i;
for(i=1;i<=5;i++) printf("%d\n",ff(i));
}
10、已知函数定义为:int stat(int a,float *p),则此函数的两个参数类型分别是______、 浮点型。

三、编程题 (共3题,每题0分,共计40分)

1、编写程序:计算并输出一维数组a[10]中的最大值。
2、编写程序:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud"中。功能如下:
请输入5个同学的信息:学生号,姓名,3门成绩:
1 a 60 70 80
2 b 60 80 90
3 c 59 39 89
4 e 56 88 98
5 d 43 88 78
打开 stud文件,内容如下
1 a 60 70 80 70
2 b 60 80 90 76
3 c 59 39 89 62
4 e 56 88 98 80
5 d 43 88 78 69
3、整数转字符串。输入一个整数1234,得到字符串: “1234”