蚌埠学院09年计算机专升本
试卷
云南省高中会考试卷哪里下载南京英语小升初试卷下载电路下试卷下载上海试卷下载口算试卷下载
(专业课)
蚌埠学院2009年专升本专业课考试
《C语言程序设计》试题卷
考生姓名: 准考证号码:
考生须知:1、考生一律在答题卷上答题~在试题卷上答题无效,
2、答题不需要抄写题目~但必须写清题目编号,第几大题第几小题,,
3、试题卷、答题卷及草稿纸不准带出考场~离开考场须经监考人员清点,
4、考试时间150分钟,试题满分150分,
5、本试题卷共5页~5大题~,注意反面,。
一(单项选择题(每题1.5分,共45分)
1(______是合法的用户自定义标识符。
A( b-b B(float C(
D(_isw 2(______是不正确的字符常量。
A('n' B('1' C("a" D('\01'
3(表达式______的值是0。
A(3%5 B(3/5.0 C(3/5 D(3<5
4(以下符合C语言语法的实型常量是______。
A(1.2E0.5 B(3.14159E C(.5E-3 D(E15
5(对于以下的变量定义,不正确的表达式是______。
struct node{int j,k;}x,*p=&x;
A(p->k=2; B((*p).k=2; C(x.k=2 D(x->k=2 6(设变量定义为“int s[]="hello\nworld\n";”,则数组s中有______个元素。
A(12 B(13 C(14 D(15
7(下列条件语句中,功能与其他语句不同的是______。
A(if(a) printf("%d\n",x); else printf("%d\n",y);
B(if(a==0) printf("%d\n",y); else printf("%d\n",x);
C(if(a!=0) printf("%d\n",x); else printf("%d\n",y);
(if(a==0) printf("%d\n",x); else printf("%d\n",y); D
8(C标准库函数中,数学函数的原型在______头文件中。
A(stdio.h B(math.h C(string.h D(ctype.h 9(以下选项中非法的表达式是______。
A(x=(a=1,b=a+1) B(i=j==0 C((char)(65+3) D(x+1=x+1 10(若变量c为char类型,则能正确判断出c为小写字母的表达式是______。
A('a'<=c<='z' B((c>='a')||(c<='z') C(('a'<=c)and('z'>=c) D((c>='a')&&(c<='z') 11. 语句for(a=0,b=0;b!=100&&a<5;a++) scanf("%d",&b); scanf函数的执行次数是______。
A. 4 B. 6 C. 5 D. 1 12(以下定义语句正确的是______。
A(int n=5,a[n][n]; B(int a[][3]={{1,2},{3,4},{5,6}};
C(int a[][3]; D(int a[][]={{1,2},{3,4},{5,6}}; 13(有数组定义“char array[]="China";”,则数组 array所占的空间是______。
A(4个字节 B(5个字节 C(6个字节 D(7个字节
14(C语言程序的基本单位是______。
A(函数 B(过程 C(子程序 D(子例程
- 1 -
15. C语言中用于结构化程序设计的三种基本结构是______。
A. 顺序结构、选择结构、模块结构 B. 选择结构、循环结构、模块结构
C. while do-while for D. 顺序结构、选择结构、循环结构 16(以下程序段,while 循环执行的次数是______。
int k=0; while(k=1) k++;
A(无限次 B(有语法错,不能执行 C(一次也不执行 D(执行1次 17(以下对于函数说法错误的是______。
A(函数可以递归调用 B(数组名可以作为函数的实际参数
C(函数可以嵌套定义 D(实际参数和形式参数必须对应 18(设有函数调用语句“func((a1,a2,a3),(a4,a5));”,则函数func中有______个形参。
A(1 B(5 C(2 D(不合法
19(当调用函数时,实参是一个数组名,则向函数传送的是______。
A(数组的长度 B(数组的首地址 C(数组每一个元素的地址 D(数组每个元素中的值 20(以下叙述中不正确的是______。
A(在不同的函数中可以使用相同名字的变量。
B. 函数中的形式参数是局部变量。
C. 在一个函数内的复合语句中定义的变量在本函数范围内有效。
D. 在一个函数内定义的变量只在本函数范围内有效。
21(设变量定义为“int a[2]={1,3}, *p=&a[0]+1;”,则*p的值是______。
A(2 B(3 C(4 D(&a[0]+1 22(下列程序段的输出结果是______。
int *p,*q,k=1,j=10; p=&j; q=&k;p=q;(*p)++; printf("%d",*q);
A(1 B(2 C(10 D(11
23(设变量定义为“int a[4];”,则不符合C语言语法的表达式是______。
A(*a B(a[0] C(a D(a++
24(不正确的赋值或赋初值的方式是______。
A(char str[]="string"; B(char str[10]; str="string";
C(char *p="string"; D(char *p; p="string"; 25(设变量定义为“int x, *p=&x;”,则&*p相当于______。
A(p B(*p C(x D(*&x
26(若有以下定义,则值为4的表达式是______。
int a[]={1,2,3,4,5,6,7,8,9,10},*p=a;
A(p+=3,*(p++) B(p+=3,*++p C(p+=4,*p++ D(p+=4,++*p 27(程序中对fun函数的说明为“void *fun();”,此说明的含义是______。
A(fun函数无返回值 B(fun函数的返回值可以是任意的数据类型
C(fun函数的返回值是无值型的指针类型 D(指针fun指向一个函数,该函数无返回值 28(有数组定义“int a[3][4];”,不能表示a[1][1]的是______。
A(*(a[1]+1) B(*(&a[1][1]) C((*(a+1))[1] D(*(a+5) 29(不合法的main函数命令行参数表示形式是______。
A(main(int a,char *c[]) B(main(int arc,char **arv)
C(main(int argc,char *argv) D(main(int argv,char *argc[])
30(下列关于C语言数据文件的叙述中正确的是______。
A(文件由ASCII码字符序列组成,C语言只能读写文本文件
B(文件由二进制数据序列组成,C语言只能读写二进制文件
C(文件由记录序列组成,可按数据存放形式分为二进制文件和文本文件
D(文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
- 2 -
二、填空题(每题2分,共30分)
1(一个C语言编写的程序是从______开始执行的。
2(一个C语言程序的开发过程包括:编辑、______、连接和运行4个步骤。 3(C语言源程序文件的扩展名是______。
4(表达式 !!5的值是______。
5(设ch是字符型变量,判断ch为英文字母的表达式是______。 6(执行下列语句后,变量i的值是______。
int i; for(i=1;i++<=5;);
7(若在程序中用到putchar函数,应在程序开头写上包含命令______,若在程序中用到strlen函数,应
在程序开头写上包含命令______。
8(下面程序的运行结果是______。
char c[5]={'a','b','\0','c','\0'}; printf("%s",c); 9(定义“double w[10];”,则w数组元素下标的上限是______,下限是______。 10(数组 int a[3][4];共定义了______个数组元素。
11(C语言的预处理语句以______开头。
12(下列程序段的输出结果是______。
#define MIN(x,y) (x)<(y)?(x):(y)
printf("%d",10*MIN(10,15)); 13(对于以下递归函数f,调用f(3)的返回值是______。
f(int n)
{return((n<=0)?n:f(n-1)+f(n-2));} 14(下列程序段的输出结果是______。
char *st[]={"abcd","efgh","ijkl","mnop"}; printf("%s", *(st+1)+1);
15(变量a所占内存字节数是______。
union U
{
char st[4];
int i;
long l;
};
struct A
{
int c;
union U u;
}a;
三、程序填空题(每题7分,共21分)
1(程序功能:从键盘上输入若干个学生的成绩(当输入为负数时结束输入),统计并输出最高成绩和最低
成绩。
#include
main()
{
float x,amax,amin;
scanf("%f",&x);
amax =x;
amin=x;
while(_ _?___)
- 3 -
{
if( x>amax ) amax=x;
if(___?___) amin=x;
scanf("%f",&x);
}
printf("\namax=%f\n amin=%f\n",amax,amin);
}
2(程序功能:调用swap函数交换a和b的值,并输出交换后a和b的值。 void main()
{
int a=3, b=5;
swap( ? );
printf("After swap %d,%d",a,b); }
swap(int *p, int *q )
{
int t;
? ;
? ;
? ;
}
3(程序功能:统计输入字符中每个大写字母的个数,#号为输入结束标志。 #include
#include
main()
{
int num[26],i; char c;
for(i=0;i<26;i++) num[i]=0;
while( ? !='#') /*统计输入的大写字母个数*/
if(isupper(c)) num[c-65]+=1;
for(i=0;i<26;i++) /*输出大写字母和该字母的个数*/
if(num[i]) printf("%c:%d\n",i ? ,num[i]); }
四、程序阅读题(每题6分,共24分)
1(输入1,输出结果是______。
main()
{
int sum=0,n;
scanf("%d",&n);
while(n<=5)
{
sum+=n;
n++;
}
printf("sum=%d",sum);
}
- 4 -
2(输出结果是______。
#include
int f(int m)
{
static int k=0;
int s=0;
for(;k<=m;k++) s++;
return s;
}
void main()
{
int s1, s2;
s1=f(5);
s2=f(3);
printf("%d %d\n",s1,s2);
}
3(输出结果是______。
#include
main()
{
int y=9;
for(;y>0;y--)
if(y%3==0)
{
printf("%d",--y);
continue;
}
}
4(输出结果是______。
main()
{
int c[]={10,0,-10};
int *k=c+2;
printf("%d",*k--);
}
五、编程题(每题10分,共30分)
1(已知三角形的三边长,求三角形的面积。
要求:三边长从键盘输入(a、b、c),要考虑数据输入是否正确,能否构成三角形等情况。
s(s,a)(s,b)(s,c)提示:s=(a+b+c)/2,面积为。 2(完成一个4位数的倒序输出。要求在主函数中输入一个4位数,然后调用自定义reverse函数,将该
数倒序输出。如:输入的数为1234,则输出为4321。 3(一个5×5二维数组(要求通过键盘为其赋值),求其周边元素之和以及该数组中值最小的元素值,然
后输出。
蚌埠学院2009年专升本专业课考试
- 5 -
《C语言程序设计》试题卷
答案
八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案
一(单项选择题(每小题1.5分,共45分)
1-10 D C C C D B D B D D 11-20 C B C A D A C C B C 21-30 B B D B A A C D C D
二、填空题(每题2分,共30分)
1(main
2(编译
3(.C
4(1
5((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z')
6(7
7(#include "stdio.h" #include "string.h"
8(ab
9(9 0
10(12
11(#
12(15
13(-2
14(fgh
15(6
三、程序填空题(每题7分,共21分)
1(?x>=0 ?x
#include
main()
{
float a,b,c,s,s1;
printf("Please enter 3 reals:\n");
scanf("%f%f%f",&a,&b,&c);
if((a+b)>c&&(a+c)>b&&(b+c)>a)
{
s=(a+b+c)*0.5;
s1=s*(s-a)*(s-b)*(s-c);
s=sqrt(s1);
printf("\nArea of the triangle is %f\n",s);
- 6 -
}
else
printf("It is not triangle!\n");
}
2(
void reverse(int num)
{
int i,j,k,m;
i=num/1000;
j=num/100-i*10;
k=num/10-i*100-j*10;
m=num%10;
m=m*1000+k*100+j*10+i;
printf("倒序为:%d",m);
}
main()
{
int number;
printf("请输入一个四位数:");
scanf("%d",&number);
if(number>999&&number<10000)
reverse(number);
else printf("输入错误~");
}
3(
main()
{
int a[5][5],i,j,sum=0,min;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
min=a[0][0];
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
if(i==0||i==4) sum=sum+a[i][j];
else if(j==0||j==4) sum=sum+a[i][j];
if(min>a[i][j]) min=a[i][j];
}
printf("sum=%d,min=%d",sum,min);
}
- 7 -