湖南省2016年普通高等学校对口招生 计算机应用类专业综合知识试题模拟试卷(1)
本试题卷共六大题,39小题,共16页。时量150分钟,满分390分。
一、单选题(在本题的每一小题的备选答案中,只有一个答案是正确的,本大题共22小题,每小题
5分,共110分)
19. 下面合法的C语言字符常量是______。A
A. '\\t' B.\D.A
20. 设有:int a=1, b=2, c=3, d=4, m=2, n=2;执行 (m=a>b)&&(n=c>d)后n的值为_______。B
A.1 main()
{
int m=6;
} A.4
B.5
C.7
D.6
22. 下面程序段的运行结果是______。D
int x=0,y=0;
while (x<15) y++,x+=++y; printf(\
A.20,7 B.6,12 C.20,8 D.8,20
二、基本操作题(本大题共5小题,每空4分,共60分)
27.在C语言中,可以使用函数 ① 来获取字符串的长度,使用函数 ② 来对两个字符串进行比较,
使用宏定义命令 ③ 来定义宏。
三、综合应用题(本大题共4小题,每空5分,共80分)
31.请30人参观博物馆共花50美元,其中成年男子门票为3美元/人,成年女子2美元/人,小孩1美元/人。编程输出成年男子、成年女子和小孩人数的所有组合。 题目分析如下:
设x,y,z分别代表成年男子、成年女子和小孩人数。按题目要求,可得下面方程: x+y+z=30
(1) (2) (3)
计算机应用类专业综合知识试题 第1页 (共62页)
B.2 C.0 D.4
21.以下程序的运行结果是______。D
if(m++> 6)
printf(\e1se
printf(\
3x+2y+z=50 2x+y=20
用程序求此不定方程的非负整数解,可先通过(2)-(1)式得:
由(3)式可知,x变化范围是 ① 根据以上分析编写程序如下:
#include
int x,y,z; /*x,y,z分别代表成年男子、成年女子、小孩人数*/ printf(\;
for(x=0; ②x<=10 ;x++)
{
___③ ____; ___④_ ____;
/*按照(3)式根据x求y*/ /*由(1)式求得z*/
if(3*x+2*y+z==50) /*当前得到的一组解是否满足式(2)*/
printf(\%d %d %d\n\;
}
}
四、程序分析题(本大题共3小题,共75分)w1ida.com欢迎你 32.阅读程序,写出运行结果(每空5分,共25分)
(1)下列程序的运行结果是 ① main()
{ int a=1,b=10; do
{ b-=a;
a++;
}while(b--<=0);
printf(\); }
(2)下列程序的运行结果是 ② main()
{ char ch[7]={ \ int i,s=0; for(i=0;ch[i]>=’0 ’ && ch[i]<=’9’;i+=2) s=10*s+ch[i]-‘0’; printf(\}
(3)下列程序的运行结果是 ③ #include
f=f+n; return f; }
main()
计算机应用类专业综合知识试题 第2页 (共62页)
{
int i;
for(i=2;i<=3;i++) printf(\}
(4)下列程序的运行结果是 ④ #include
return a=a+b,a%b; }
main() { int x=9,y=7,z=3,rels; rels=func(func(x,y),z); printf(\%d\\n\,1< (5) 下列程序的运行结果是 ⑤ #include if(*x<*y) return x; else return y;} main() { int a=6,b=7,*p,*q,*r; p=&a; q=&b; r=f(p,q); printf(\d\,*p,*q,*r); } 33.程序填空。按照题目要求,将正确内容填入答题卡相应位置,使程序完整。(每空5分,共25分) (l) 下面的程序从文本文件test.txt逐个读入字符,并显示在屏幕上。 #include FILE *fp; char ch,*filename=\ if((fp= ① (filename,\)==NULL) { printf(\exit(0); 计算机应用类专业综合知识试题 第3页 (共62页) } while(! ② ) { ch=fgetc(fp); putchar(ch); } fclose(fp); } (2)以下程序的功能是:读入一行字符,以回车结束,按输入时的逆序使用单向链表进行存储, 先输入的位于链表尾,然后再遍历输出链表,如输入abc↙,链表结构如图6所示,程序最后输出cba. 图6 struct node { char value; struct node *link; } main() { struct node *top,*p; char c; top=NULL; while((c=getchar()) ③) { p=(struct node *)malloc(sizeof(struct node)); p->value=c; p->link=top; ④; } while(top) { p=top; top=top->link; 计算机应用类专业综合知识试题 第4页 (共62页) putchar( ⑤ ); } } 34. 阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请在答题卡中指出错误代码所在的行号,并给出该行修改后的程序代码。(每处5分,共25分) (l)产生一个0-9之间的随机整数,要求用户猜这个整数。用户输入一个整数,程序判断 是否与所产生的随机数相等,由屏幕显示判断结果。如果猜得不对,再次提示输入,进行判断,直到猜出这个数为止。以下程序只允许修改两行。 .. L1 #include L6 int x,a=-1; L7 srand((unsigned)time(NULL)); /*随机种子*/ L8 x=rand(); /*产生0-9的随机数*/ L9 while(a!=x) L10 { L11 scanf(\L12 if(a=x) L13 puts(\猜对\L14 if(a>x) L15 puts(“太大,请重试”); L16 if(a L17 puts(“太小,请重试”); L18 } L19 } (2)函数convertNum用于实现无符号十进制数到其它进制数的转换,转换结果的每一位以 字符存储于字符数组s中(如十进制3转换为二进制后,数组s中存储的字符串为11),参数srclnt为待转换数据,d为转换的目标进制。函数convertNum转换成功返回l,失败返回0。以下程序只允许修改三行。 ..L1 #include L3 #define M sizeof(unsigned int)*8 L4 int convertNum(unsigned srclnt,int d,char s[]) L5 { L6 static char digits[]=\L7 char buf[M+1]; L8 int j,i=M; 计算机应用类专业综合知识试题 第5页 (共62页)