韩山专插本C语言真题卷.docx
《韩山专插本C语言真题卷.docx》由会员分享,可在线阅读,更多相关《韩山专插本C语言真题卷.docx(61页珍藏版)》请在冰豆网上搜索。
韩山专插本C语言真题卷
韩山师范学院2011年专升本插班生考试试题
教育技术学专业C语言程序设计试卷(A卷)
题号
一
二
三
四
五
六
七
八
九
十
总分
评卷人
得分
一、填空题(每空1分,共10分)
1.C程序的基本单位是________。
2.C语言源程序文件的后缀是________。
3.标识符的第一个字符必须是_______或________。
4.表达式10%3的结果是_________。
5.当打开的文件被成功关闭后,函数fclose()返回。
6.在每个C语句和数据定义的最后必须有一个____________。
7.若有定义:
doubleA[3][5];则A数组中行下标的下限为_____________,列下标的上限为_____________。
8.若x=2,y=3,则x|y<<2的结果是___________。
二、单项选择题(每小题1.5分,共30分)
题号
1
2
3
4
5
6
7
8
9
10
答案
题号
11
12
13
14
15
16
17
18
19
20
答案
1.算法是指为解决某个特定问题而采取的正确且有限的步骤,下面不属于算法的5个特性的是()。
A.高效性B.有穷性C.有零个输入或多个输入D.确定性
2.C语言程序的三种基本结构是()。
A.顺序结构、选择结构、循环结构
B.递归结构、循环结构、转移结构
C.嵌套结构、递归结构、顺序结构
D.循环结构、转移结构、顺序结构
3.有下面的程序段
chara[3],b[]=“China”;
a=b;
printf(“%s”,a);
A.运行后将输出ChinaB.运行后将输出Ch
C.运行后将输出ChiD.编译出错
4.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。
A.x=n%2.5B.x=y==5C.x+n=iD.x=5=4+1
5.若执行以下程序时从键盘上输入9,则输出结果是()。
A.11B.10C.9D.8
main()
{intn;
scanf("%d",&n);
if(n++<10)printf("%d\n",n);
elseprintf("%d\n",n--);
}
6.设x、y、t均为int型变量,则执行语句:
x=y=3;t=++x||++y;后,y的值为()。
A.不定值B.4C.3D.1
7.有以下程序段
intk=0;
while(k=1)k++;
while循环执行的次数是()。
A.无限次B.有语法错,不能执行
C.一次也不执行D.执行1次
8.若变量c为char类型,能正确判断出c为小写字母的表达式是()。
A.‘a'<=c<=‘z'B.(c>=‘a')||(c<=‘z')
C.(‘a'<=c)and(‘z'>=c)D.(c>=‘a')&&(c<=‘z')
9.以下所列的各函数首部中,正确的是()。
A.voidplay(var:
Integer,varb:
Integer)
B.voidplay(a,b)
C.voidplay(inta,intb)
D.Subplay(aasinteger,basinteger)
10.以下程序的输出结果是()。
A.0B.29C.31D.无定值
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(5,2,a);
printf("%d",a);
}
11.下列程序的输出结果是()。
A.非法B.a[4]的地址C.5D.3
main()
{chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
printf("%d",*--p);
}
12.当调用函数时,实参是一个数组名,则向函数传送的是()。
A.数组的长度
B.数组的首地址
C.数组每一个元素的地址
D.数组每个元素中的值
13.若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是()。
A.EOFB.0C.非零值D.NULL
14.以下程序的输出结果是()。
A.1,5,9,B.1,4,7,C.3,5,7,D.3,6,9,
main()
{inti,x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)printf("%d,",x[i][2-i]);
}
15.以下叙述正确的是()。
A.在进行宏定义时,可以引用已定义过的宏
B.编译预处理命令必须位于程序的开头
C.宏展开将占用程序运行时间
D.从宏被定义的位置起,所有与宏名相同的字符串都将被替换
16.在说明一个共用体变量时,系统分配给它的存储空间是()。
A.该共用体中第一个成员所需存储空间
B.该共用体中最后一个成员所需存储空间
C.该共用体中占用最大存储空间的成员所需存储空间
D.该共用体中所有成员所需存储空间的总和
17.下列程序段的输出结果()。
intb=10;
printf("%d",~b);
A.02B.-20C.-21D.-11
18.在C语言中,对文件进行操作的一般步骤是()。
A.打开文件——操作文件——关闭文件
B.操作文件——修改文件——关闭文件
C.读写文件——打开文件——关闭文件
D.读文件——写文件——关闭文件
19.若执行fopen()函数发生错误,则函数的返回值是()。
A.地址值B.NULLC.1D.EOF
20.以下程序运行后结果是()。
#defineA3
#defineB(a)((A+1)*a)
main()
{intx;
x=3*(A+B(7));
printf("%d\n",x);
}
A.93B.31C.12D.不确定
三、阅读程序,将运行结果写到各题右侧的空白处(每小题4分,共20分)
1.main()
{inta=0;
a+=(a=8);
printf("%d\n",a);
}
2.main()
{inta[3][3]={{1,2},{3,4},{5,6}};
inti,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=1;j++)
s+=a[i][j];
printf("%d",s);
}
3.main()
{charstring1[64]="abc\t";
char*string2="def\t";
charstring3[]="123\n";
strcat(string1,string2);
strcat(string1,string3);
printf("%d\n",strlen(string1));
}
4.structdate
{inta;
chars[5];
}arg={27,"abcd"};
main()
{
arg.a-=5;
strcpy(arg.s,"ABCD");
printf("%d,%s",arg.a,arg.s);
}
5.main()
{charfood[]="Bread";
char*p;
p=food+strlen(food);
while(--p>=food)
puts(p);
}
四、阅读程序或程序段,填空(每小题4分,共20分)
1.以下程序中,select函数的功能是:
在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标,请填空。
#defineN3
#defineM3
select(inta[N][M],int*n)
{inti,j,row=1,colum=1;
for(i=0;ifor(j=0;jif(a[i][j]>a[row][colum]){row=i;colum=j;}
*n=;
return;
}
main()
{inta[N][M]={9,11,23,6,1,15,9,17,20},max,n;
max=select(a,&n);
printf("max=%d,line=%d\n",max,n);
}
2.以下程序的功能是:
输出a,b,c三个变量中的最小值,请填空。
#include
voidmain()
{inta,b,c,t1,t2;
scanf("%d%d%d",&a,&b,&c);
t1=a
;
t2=c;
printf("%d\n",t2);
}
3.下面程序采用函数递归调用的方法计算sum=1+2+3+4+...+n,请填空。
#include"stdio.h"
main()
{intsum(int);
inti;
scanf("%d",&i);
if(i<=0)printf("Inputerror!
");
elseprintf("sum=%d",sum(i));
}
intsum(intn)
{
if(n==1)return;
elsereturn;
}
4.编写一个程序判定一个字符在一个字符串中出现的次数,如果字符不出现,则返回0,请填空。
#include
intchar_count(char*s,charletter)
{intcount=0;
while(*s)
{if()
count++;
}
return;
}
main()
{charc,string[50],*str=string;
printf("Inputstring:
");
gets(str);
printf("Inputachar:
");
scanf("%c",&c);
printf("Thenumberis:
%d",char_count(str,c));
}
5.编写一个程序将用户输入的由数字字符和非数字字符组成的字符串中的数字提取出来,请填空。
main()
{
charstr[20],*p;
p=str;
gets(str);
for(;;p++)
{if()
printf("%c",*p);
}
}
五、编程题(每小题10分,共20分)
1.编一程序,输入一个百分制成绩,输出用‘A’,‘B’,‘C’,‘D’,‘E’表示的等级。
设:
90分以上的为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。
若输入的成绩大于100分或小于0分,输出“输入错误!
”的提示信息。
(要求用switch语句编程)。
2.在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1到100分,选手最后得分为去掉一个最高分和一个最低分后其余8个分数的平均值,请编写程序实现。
韩山师范学院2011年本科插班生考试样卷
教育技术学专业C语言程序设计
题号
一
二
三
四
五
六
七
八
九
十
总分
评卷人
得分
一、填空题(每空1分,共10分)
1.C语言的数据类型中,构造类型包括:
数组、和。
2.在C程序中,指针变量能够赋值或值。
3.C目标程序经后生成扩展名为exe的可执行程序文件。
4.设有定义语句staticchars[5」;则s[4]的值是。
5.设x为int型变量。
与逻辑表达式!
x等价的关系表达式是。
6.若一全局变量只允许本程序文件中的函数使用,则该变量需要使用的存储类别是。
7.磁盘文件按文件读写方式分类可以为顺序存取文件和。
8.设有下列结构体变量xx的定义,则表达式sizeof(xx)的值是_________。
struct
{longnum;
charname[20];
union{floaty;shortz;}yz;
}xx;
二、单项选择题(每小题1.5分,共30分)
题号
1
2
3
4
5
6
7
8
9
10
答案
题号
11
12
13
14
15
16
17
18
19
20
答案
1.设有定义intx=8,y,z;则执行y=z=x++,x=y==z;语句后,变量x值是()
A、0B、1C、8D、9
2.有以下程序
main()
{inti=1,j=1,k=2;
if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);}
执行后输出结果是()
A、1,1,2B、2,2,1C、2,2,2D、2,2,3
3.已知i、j、k为int型变量,若从键盘输入:
1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是()
A、scanf(“%2d%2d%2d”,&i,&j,&k);
B、scanf(“%d%d%d”,&i,&j,&k);
C、scanf(“%d,%d,%d”,&i,&j,&k);
D、scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
4.有以下程序
main()
{inta=5,b=4,c=3,d=2;
if(a>b>c)printf("%d\n",d);
elseif((c-1>=d)==1)printf("%d\n",d+1);
else printf("%d\n",d+2);
}执行后输出结果是()
A、2B、3C、4D、编译时有错,无结果
5.以下程序段()
x=1;
do{x=x*x;}while(!
x);
A、是死循环B、循环执行二次
C、循环执行一次D、有语法错误
6.以下不能正确定义二维数组的选项是()
A、inta[2][2]={{1},{2}};B、inta[][2]={1,2,3,4};
C、inta[2][2]={{1},2,3};D、inta[2][]={{1,2},{3,4}};
7.有以下程序
main()
{intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
inti,s=0;
for(i=0;i<4;i++)s+=aa[i][1];
printf(“%d\n”,s);
}
程序运行后的输出结果是()
A、11B、19C、13D、20
8.以下程序的输出结果是()
main()
{charch[3][5]={"AAAA","BBB","CC"};
printf("\"%s\"\n",ch[1]);
}
A、"AAAA"B、"BBB"C、"BBBCC"D、"CC"
9.有以下程序
#definef(x)x*x
main()
{inti;
i=f(4+4)/f(2+2);
printf(“%d\n”,i);
}执行后输出结果是()
A、28B、22C、16D、4
10.决定C语言中函数返回值类型的是()。
A、return语句中的表达式类型
B、调用该函数的主调函数类型
C、调用函数时临时指定的类型
D、定义函数时在函数首部中所指定的类型(若缺省,则隐含为int型)。
11.系统对预处理命令(如宏替换、文件包含、条件编译)的处理时机是()。
A、编译源程序B、编译源程序之前
C、连接目标文件时D、运行程序时
12.在位运算中,操作数每左移一位,其结果相当于()
A、操作数乘以2
C、操作数除以2
B、操作数除以4
D、操作数乘以4
13.下述描述中不正确的是()。
A、字符型数组中可以存放字符串
B、可以对字符型数组进行整体输入、输出
C、可以对整型数组进行整体进行输入、输出
D、不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值
14.若有以下定义inta[2][3],则对a数组第i行第j列元素的正确引用是()
A、*(*(a+i)+j)B、(a+i)[j]
C、*(a+i+j)D、*(a+i)+j
15.有以下程序
voidfun(char*a,char*b)
{a=b;(*a)++;}
main()
{charc1='A',c2='a',*p1,*p2;
p1=&c1;p2=&c2;
fun(p1,p2);
printf("%c%c\n",c1,c2);
}
程序运行后的输出结果是()
A、Ab
B、aa
C、Aa
D、Bb
16.已定义以下函数
Fun(char*p2,char*p1)
{while((*p2=*p1)!
='\0'){p1++;p2++;}}
函数Fun的功能是()
A、将p1所指字符串复制到p2所指内存空间
B、将p1所指字符串的地址赋给指针p2
C、对p1和p2两个指针所指字符串进行比较
D、检查p1和p2两个指针所指字符串中是否有'\0'
17.设有以下结构体类型:
structst
{charname[8];
intnum;
floats[4];
}student[50];
并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件fp中,以下不正确的形式是()
A、fwrite(student,sizeof(structst),50,fp);
B、fwrite(student,50*sizeof(structst),1,fp);
C、fwrite(student,25*sizeof(structst),25,fp);
D、for(i=0;i<50;i++)
fwrite(student+i,sizeof(structst),1,fp);
18.若有说明语句
chara[]="Itismine";
char*p="Itismine";
则以下不正确的叙述是()
A、a+1表示的是字符t的地址
B、p指向另外的字符串时,字符串的长度不受限制
C、p变量中存放的地址值可以改变
D、a中只能存放10个字符
19.当调用函数时,实参是一个数组名,则向函数传送的是()
A、数组的长度
B、数组的首地址
C、数组每一个元素的地址
D、数组每一个元素中的值
20.设有变量说明inta=3,b=6;charc;若执行赋值语句c=(a^b)<<2;
则c的二进制值是()。
A、00011100B、00000111C、00000001D、00010100
三、阅读程序,将运行结果写到各题右侧的空白处(每小题4分,共20分)
1.#include
main()
{charstr[]="1234567";
inti;
for(i=0;i<7;i+=3)
printf("%s\n",str+i);
}
2.#include
main()
{inti;
for(i=0;i<3;i++)
switch(i)
{case0:
printf("%d",i);
case2:
printf("%d",i);
default:
printf("%d",i);
}
}
3.#include
main()
{
inti;
for(i=1;i<6;i++)
{
if(i%2){
printf("#");
continue;}
printf("*");
}
printf("\n");
}
4.#include
intb=1;
func(intp)
{
staticintd=5;
d+=p;
printf("%d,",d);
return(d);
}
main()
{
inta=3;
printf("%d\n",func(a+func(b)));
}
5.#include
structstu
{intnum;charname[10];intage;};
voidpy(structstu*p)
{printf("%s\n",(*p).name);}
main()
{
structstustudent[3]={{1001,"Sun",25},{1002,"Ling",23},{1003,"Shen",22}};
py(student+2);
}
四、阅读程序或程序段,填空(每小题4分,共20分)
1.下面程序的功能是调用fun函数以删除字符串中指定的字符,请填空。
voidfun(chars[],intc)
{inti,j;
for(i=0,j=0;s[i]!
='\0';i++)
if()
s[j]='\0';
}
main()
{charstr[]="abcdefgAbcd",ch;
scanf("%c",&ch);
fun(str,ch);
printf("%s\n",str);
}
2.下面程序是按学生姓名查询其排名和平均成绩,查询可连续进行直到键入0时结束,请填空。
#include
#defineNUM4
structstudent
{intrank;
char*name;
floatscore;};
stu[]={3,”Tom”,89.3,4,”Mary”,78.2,1,”Jack”,95.1,2,”Jim”,90.6};
main()
{charstr[10];inti;
do
{printf("Enteraname:
");
scanf("%s",str);
for(i=0;iif()
{printf("%s,