嘉兴学院C语言程序设计专升本
本试卷为嘉兴学院C语言程序设计专升本,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言程序设计专升本
一、单项选择题 (共20题,每题2分,共计40分)
(  A  ) 
1、要求通过while循环不断读人字符,当读入字母n时结束循环,若变量已正确定义,下列正确的程序段是________。
(  B  ) 
2、下列程序的运行结果是________。
#define ADD(x)X+X
main()
{
int m=1,n=2,k=3: int s=ADD(m+n)*k;
printf("s=%d",s):
}
(  A  ) 
3、执行语句"for(i=1;i++<4;); "后,变量i的值是________。
(  A  ) 
4、有以下程序
struct stu
{
char name[10];
int num;
};
void f(char *name, int num)
{
struct stu s[2]={{"sundan",20044},{"penghua",20045}};
num = s[0].num;
strcpy(name, s[0].name);
}
main()
{
struct stu s[2]={{"yangsan",20041},{"lisiguo",20042}},*p;
p=&s[1];
f(p->name, p->num);
printf("%s %d\n", p->name, p->num);
}
程序运行后的输出结果是________。
(  B  ) 
5、有如下程序 int a[10]={ 1,2,3,4,5,6,7,8,9,10 },*p=a; 则数值为9的表达式是________。
(  D  ) 
6、分析以下程序 , 下列说法正确的是______。
main()
{
int x=5,a=0,b=0;
if(x=a+b) printf("* * * *\n");
else printf("# # # #\n");
}
(  A  ) 
7、若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为(假设 a[0] [0]位于数组的第一个位置上) ________。
(  B  ) 
8、下面程序段的功能是________。
…… int a[]= {4,0,2,3,1},i,j,t;
for(i=0;<5;i++)
{
t=a[i];
j=i;
j--;
}
while(j>=0&&t>a[j])
{
a[j+1]=a[j];
j--;
a[j+1] =t;
}
……
(  A  ) 
9、数据和程序以______进制代码形式存放在存储器中。
(  D  ) 
10、下列描述中,正确的一条是______。
(  C  ) 
11、字面常量42、4.2、42l的数据类型分别是________。
(  C  ) 
12、若a和b均是整型变量并已正确赋值,正确的switch语句是________。
(  D  ) 
13、若采用双符号位判断溢出,当结果的符号位为11时,表示 (13) 。
(  C  ) 
14、null是指 ________。
(  C  ) 
15、以下叙述正确的是________。
(  D  ) 
16、以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空:
#include<stdio.h> findmax(int*s,int t,int*k)
{
int p;
for(p=0,*k=p;p<t;p++) if(s[p]>s[*k])________;
}
main()
{
int a[10],i,k;
for(i=0;i<10;i++)scanf("%d",&a[i]);
findmax(a,10,&k);
printf("%d,%d\n",k,a[k]);
}
(  D  ) 
17、若有定义:int x,y; char a,b,c; 并有以下输入数据(此处\u代表空格):1\u2\ua\ub\uc,那么能给x赋整数1,给y赋整数2,给a赋字符a,给b赋字符b,给c赋字符c的正确程序段是________。
(  C  ) 
18、若有定义:
struct keyword
{
char key[20];
int id;
}
kw[] = {"void", 1, "char", 2, "int", 3, "float", 4, "double", 5 };
则printf("%c,%d\n", kw[3].key[0], kw[3].id);
语句的输出结果为________。
(  B  ) 
19、int (*p)[6]; 它的含义为________。
(  C  ) 
20、a,b 为整型变量,二者均不为 0,以下关系表达式中恒成立的是()。
二、判断题 (共10题,每题2分,共计20分)
(   T  ) 
1、c语言中字符串的结束符是’\0’。 ( )
(   T  ) 
2、在多层循环中,continue语句只结束本次循环,而不是终止整个循环的执行。
(   F  ) 
3、文件包含命令中,只能包含扩展名为.h的文件。
(   T  ) 
4、执行以下语句后,输出2.50。printf("%.2f", (double)5/2); 
(   F  ) 
5、在c语言程序中,函数名和圆括号可以省略。
(   F  ) 
6、c语言中浮点型常量指数表示形式中,e或e后面的指数部分可以是非整数。
(   F  ) 
7、文件指针和位置指针都是随着文件的读写操作在不断改变。
(   T  ) 
8、在定义数组时,有时候可以将该数组的维数省略。
(   F  ) 
9、在标准c中,没有逻辑型数据,故不能使用逻辑表达式。
(   T  ) 
10、在定义函数时,若函数类型为" void",则表示该函数 没有返回值 ; 若函数参数为" void",则表示该函数 没有参数 。( )
三、填空题 (共5题,每题4分,共计20分)
1、下面程序段的运行结果是________.
int i=1,s=3;
do
{
s+=i++;
if(s%7==0)continue;
else ++i;
}
while(s<15);
printf("%d",i);
2、在c语言中,标识符是由英文字母、( )、下划线组成的。
3、在c语言中,按函数在程序中出现的位置可分为以下三种调用方式:函数语句、函数表达式和函数________。
4、c 语言规定,可执行程序的开始执行点是________。
5、在c语言中,将字符串中小写字母转换成大写字母的函数是_____________。
四、程序分析题 (共4题,每题5分,共计20分)
1、有定义int a=-1;则pirntf("%d,%o",a,a")的输出结果是________。
2、mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。 int mystrlen(char *str)
{
int i;
for(i=0; ________!=‘\0';i++);
return( ________);
}
3、下列给定程序中函数fun()的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:l,1,2,3,5,8,13,21,… 例如,若给n输入7,则该项的斐波拉契数值为13。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构! 试题程序:
long fun(int g) (
switch(g);
{
case 0:
return 0;
case 1:case 2: return 1;
}
return(fun(g-1)+fun(g-2)); )
void main()
{
long fib;
int n;
printf("input n:");
scanf("%d",&n);
printf("n=%d\n",n);
fib=fun(n);
printf("fib=%d\nkn",fib);
}
4、请阅读并分析以下程序,该程序的输出结果是:
#include <stdio.h>
main( )
{
int n[3][3], i, j;
for(i=0;i<3;i++ )
for(j=0;j<3;j++ )n[i][j]=i+j;
for(i=0;i<2;i++ )
for(j=0;j<2;j++ )n[i+1][j+1]+=n[i][j];
printf("%d\n", n[i][j]);
}
五、编程题 (共3题,每题0分,共计50分)
1、编写程序:将字符数组a中下标值为奇数的元素从小到大排列,其它元素不变 例如:当a数组中的字符串为:"clanguage"时,程序的输出结果为:cgalgnaue()
2、已知学生的记录由学号和学习成绩构成N名学生的数据已存入a结构体数组中。试编写函数fun函数的功能是找出成绩最低的学生记录通过形参返回主函数规定只有一个最低分在主函数中调用fun,使用结构体实现
3、已知银行定期存款利率为r=2.25%,输入存款本金x、存款年数n,输出本利之和y=x(1+r)(1+r)...(1+r),共n个(1+r)。
相关标签:
- C语言
 - 嘉兴学院
 - 专升本