2013 年天津市大学软件学院高职升本专业课试题-文史类
考场号
考生号
姓名
一、单项选择题(共 20 小题,每题 2 分,共 40 分)
第一部分 C 语言部分 100 分
以下每小题列出的四个备选答案中只有一个符合题目要求,请将正确答案填入“单项选择题答题表”
对应的格中,未填入答题表,错选或多选均不得分。
1. 表示当 x 的取值在[1,10]和[200,210]范围内为真,否则为假的 C 语言表达式为
A. (x>=1&&x<=10)&&(x>=200&&x<=210)
C. (x>=1&&x<=10)||(x>=200&&x<=210)
B. (x>=1||x<=10)||(x>=200||x<=210)
D. (x>=1||x<=10)&&(x>=200||x<=210)
2. 若有以下定义:
int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中 0≤i≤9,则为数组元素 a[i]不正确的引用是
A. *(p+i)
C. p[i]
B. *(a+i)
D. *a[i]
3. 判断 char 型变量是否为数字的 C 表达式为
A. ('0'<=ch&ch<='9')
C. (ch>="0"&&ch<='9')
4. 以下程序段构成的循环是
B. (ch>='0'&&ch<='9')
D. (ch>=0&&(ch<=9)
for(x=0,y=0;(y!=12&&x<4);x++) ;
A. 无限循环
C. 执行 4 次
B. 循环次数不定
D. 执行 3 次
5. 以下程序的输出结果是
#include
main()
{ int i;
for(i=1;i<=5;i++)
{ if(i%2) printf("*");
else continue;
printf("#");
}
}
A. *#*#*#
C. *#*#
B. *##*##*##*##
D. #*#*
6. 以下程序的输出结果是
#include
#define MAX(x,y) (x)>=(y)?(x):(y)
main()
{ int i=10,j=15;
printf("%d",10*MAX(i,j));
}
A. 15
C. 10
B. 100
D. 150
7. 设有说明:int (*ptr)[8];则 ptr 是
A. 指向整形变量的指针
B. 指向函数的指针,该函数的返回值为 int 数据
C. 指向一维数组的指针,该数组的基类型为 int
D. 长度为 8 的一维指针数组
1
B. a[4]的地址
D. 5
8. 以下程序段的输出结果是
char a[]="0123456789",*p=a+4;
printf("%c",*p++);
A. 4
C. 6
9. 下面程序的运行结果是
#include
main()
{ int a=1,b=10;
do
{ b−=a;
a++;
}while(b−−<0);
printf("a=%d,b=%d\n",a,b);
}
A. a=3,b=11
C. a=1,b=−1
10. 执行下面程序,输入 2 后的输出结果是
B. a=2,b=8
D. a=4,b=9
#include
main( )
{ int k;
scanf("%d",&k);
switch(k)
{ case 1:printf("%d\n",k++);break;
case 2:printf("%d\n",k++);
case 3:printf("%d\n",k++);break;
default:printf("Full!\n");
}
}
A. 1
C. 2 3
B. 2
D. 2 3 Full
11. 若有以下结构体和变量定义,则以下引用方法不正确...的是
struct worker
{ int sno;
char *name;
} work,*p=&work;
A. work.sno
C. p->sno
12. char s[10],*p;则以下不正确的表达式是
A. p=s+1;
C. *(s+1)=*p;
B. (*p).name
D. work->sno
B. p=s++;
D. *p++=s[2];
13. 以下不能对二维数组 a 正确初始化的语句是
A. int a[2][3]={{1,2,3},{4,5},{6}};
C. int a[2][4]={1,2,3};
B. int a[][3]={{1,2,3},{4,5,6}};
D. int a[][3]={{1,0,1},{},{1,1}};
14. 若有以下说明和语句,则输出结果是
char sp[]="\t\n\\0will\n";
2
printf("%d",strlen(sp));
A. 4
C. 9
15. 对于结构体类型,以下说法正确的是
B. 3
D. 字符串中有非法字符
A. 定义结构体时不能定义结构体变量
B. 结构体变量所占的空间等于占空间最大的成员所需空间
C. 结构体类型可以作为返回值类型
D. 结构体定义后可以与标准类型一样使用,但前面必须使用 struct
16. 在 C 语言中,要求运算数必须是整型的运算符是
A. /
C. !=
B. ++
D. %
17. 以下程序段在 VC6.0 环境中运行的输出结果是
struct studentinfo
{ char name[10];
int SNO;
char sex;
} student,*ps=&student;
printf("%d,%d",sizeof(student),sizeof(ps));的输出结果是
A. 15,15
C. 15,2
B. 15,4
D. 4,2
18. 根据 17 题中的结构体和变量定义,不能..正确输出 name 成员的语句是
A. printf("%s",student.name);
C. printf("%s",*ps.name);
B. printf("%s",ps->name);
D. printf("%s",(*ps).name);
19. 以下程序的输出结果是
main()
{ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);
}
A. 0650
C. 5430
B. 147
D. 输出值不定
20. 设有以下变量定义:char str[20],i;
当输入“zhang 空格 hong 回车”时,能正确读入“zhang hong”的程序段是
A. scanf("%s",str);
B. for(i=0,str[i]=getchar();str[i]!='\n';)
str[i++]=getchar();
C. gets(str);
D. for(i=0,str[i]=getchar();str[i]!='\0';i++)
str[i]=scanf("%c",str[i]);
二、填空题(共 10 题,每题 1 分,共 10 分)
请按照试题中对应的标号顺序填写到答题表中
C 函数中若省略函数类型说明,则该函数类型默认为
1.
2. 局部变量默认的存储类型为
3. 文件包含命令#include 有两种形式,区别是搜索路径不同。
。
。
包含系统 string.h 应该使用
。
4. 如果要限定变量的作用域仅在当前文件有效,应使用
5.
break 和 continue 都可以用于循环结构中,其中
3
关键字。
只是结束本次循环,回到循环体第一条
语句开始下次循环。
C 语言变量有四种存储类别,其中关键字 extern 的含义是
6.
7. 静态变量的初始化是在
8. 数组名作为实参使用时,传送的是
。
9.
10. C 语言中多维数组可嵌套定义,即 n 维数组可看作元素类型为
三、判断题
sizeof 运算符的对象即可以是变量,也可以是
阶段完成的。
。
。
。
判断下题是否正确,正确的划√,错误的划×(每题 1 分,共 15 分)
C 语言中局部变量和全部变量可以同名,并且在函数内局部变量优先于全局变量。(
)
)
)
)
void 关键字只能用于定义函数,不能定义变量。(
C 语言要求所有被调用的函数一定要在调用语句之前进行定义。(
1. 在 do-while 循环中,循环体至少执行一次。(
2.
3. 预处理命令都是以#号开头,且每行只能写一条命令。(
4. 定义二维数组时,如果对数组的所有元素赋值,则可省略长度说明。(
5.
6. 函数内定义的静态变量当函数执行完其值依然存在。(
7.
8. 一个函数直接或间接的调用自己,称作递归调用。(
9. 全局变量是指在 main 函数中定义的变量。(
)
10. for(exp1;exp2;exp3) 语句 s;中的 s 可以是空语句。(
11. 结构体可以与标准类型一样使用,但前面使用 struct 关键字。(
12. main 函数称为主函数,是个无参函数。(
13. 表达式 n=++i 等价于 n=i;i=i+1;。(
14. 语句 char s[]="test"与 char s[]={'t','e','s','t'};是等价的。(
15. C 函数中的函数即可以嵌套定义,也可以嵌套调用。(
四、阅读程序题
)
)
)
)
)
)
)
)
)
)
本题共 5 小题,每小题 5 分,共 25 分,请写出程序的运行结果
1. 【程序】
#include
#include
main()
{ char i,s[5][81],max=0;
printf("input 5 strings");
for(i=0;i<5;i++)
gets(s[i]);
for(i=0;i<5;i++)
if(strlen(s+i)>max)
max=i;
puts(s[max]);
}
【运行结果】写出从键盘输入一下 5 个字符串时程序的运行结果
"Program","test","I am a student","wee","computer"
4
2. 【程序】
#include
main()
{ int i,f1=1,f2=1;
for(i=1;i<=5;i++)
{ printf("\t%d\t%d",f1,f2);
f1=f1+f2;f2=f1+f2;
}
printf("%d,%d\n",f1,f2);
}
【运行结果】
3. 【程序】
#include
void fun(int n)
{ static int fn=1;
fn=fn*n;
printf("\t%d",fn);
}
main()
{ int i;
for(i=2;i<=5;i++) fun(i);
}
【运行结果】
4. 【程序】
void select(int max,int a[],int n)
{ int i;
max=a[0];
for(i=1;imax) max=a[i];
}
main()
{ int i,max=10,a[10]={10,20,30,40,50,60,70,80,90,100};
select(max,a,10);
printf("\nmax=%d",max);
}
【运行结果】
5
5. 【程序】写出输入 84 时程序运行结果
#include
main()
{ int score;
printf("\n input score: ");
scanf("%d",&score);
switch(score/10)
{ case 10:
case 9: printf("\n 优");
case 8: printf("\n 良");
case 7:
case 6: printf("\n 及格");
default: printf("\n 不及格");
}
}
【运行结果】
五、编程题(本题共 1 题,10 分)
已知每张选票上按序印有候选人姓名,要求选民从中勾选 3 人,多选或少选都视为废票不予统计,统
计选票时输入数据的格式为长度为 5 的由 0 和 1 组成的字符串:“1”表示对相应候选人被选中,“0”
表示未选中,如“01011”表示第 2、4、5 个候选人被选中。
请编写程序读入每张选票的投票信息,若为有效选票则统计到结果中,当输入空串时结束,输出以下
统计结果:
1. 总有效投票数。
2. 每个候选人姓名及投票数。
提示:候选人信息已保存在以下的数组中,无须再从键盘输入。
struct item
{ char name[20];
int count;
/*保存候选人及得票信息的结构体*/
/*候选人姓名*/
/*得票数*/
} mans[5]={{"name1",0},{"name2",0},{"name3",0},{"name4",0},{"name5",0}};
6