湖南省普通高等学校对口招生考试计算机应用类专业 综合知识试卷2007~~2016年《C程序设计》试题集
一、选择题
1-1、下列不是C语言合法标识符的是( )【2010年】 A、_124 B、124abc C、sum124 D、a_124
1-2、若有如图1所示存储结构,且变量定义为struct node{int data;struct node* next;}*p,*q,*r;
若要实现图2所示的存储结构,可选用的赋值语句是( )【2010年】
A、p=r; B、p=q- >next; C、p- >next=q; D、p- >next=q- >next; 1-3、C语言中,不合法的整型常量是( )【2011年】 A、88 B、018 C、-0xabcd D、2e5 1-4、C语言中,定义常量指针p(p的值不变)的正确语法是( )【2011年】 A、char *const p; B、char const *p; C、const *char p; D、const char *p; 1-5、C语言中,一个2行3列矩阵M的值如下图所示,能得到M中数值5的表达式是( )【2011年】
3 8 9
2 5 6
A、*(M+1)+1 B、*(*M+1)+1 C、*(*(M+1)+1) D、**((*M+1)+1) 1-6、以下正确的C语言自定义标识符是( )【2012年】 A、int B、a.3 C、_7c D、5d_ 1-7、已知i=3,执行j=i++后,i和j的值分别为( )【2012年】 A、i=4 j=2 B、i=4 j=3 C、i=3 j=3 D、i=3 j=2
1-8、C语言中,以下语句能跳过循环体中未执行的语句,接着执行本循环下一次迭代的语句是( )【2012年】 A、空语句 B、break语句 C、return语句 D、continue语句 1-9、下列选项中正确的C语言变量定义是( )【2013年】 A、char a1='A',a2=A; B、unsigned long a=1000; C、float a1=a2=10.0; D、double a=0.618,a=3.14; 1-10、假设有:float a=5,b=a+5/2;
则执行语句printf(\的输出结果为( )【2013年】 A、7.500000 B、7 C、5.000000 D、7.000000 1-11、有输入语句:scanf(\
为使变量a的值为1,b的值为2,正确的数据输入方式是( )【2013年】 A、12↙ B、1,2↙ C、a=1,b=2↙ D、a=1 b=2↙
1-12、算法的复杂度主要包括算法的时间复杂度和空间复杂度,算法的时间复杂度是指( )【2014年】
A、算法程序中的指令条数 B、算法程序的长度 C、算法程序所占的存储空间 D、算法执行过程中所需要的基本运算次数 1-13、C语言程序的基本单位是( )【2014年】 A、字节 B、函数 C、语句 D、字符
1-14、若变量a,i已正确定义,且i已正确赋值,合法的C语言语句是( )【2014年】
第 1 页 共 46 页
A、a=int(i); B、a==0 C、++i; D、a=a++=2;
1-15、在C语言中,下列叙述正确的是( )【2015年】 A、空字符串不占用内存,其内存空间大小是0 B、可以用关系运算符比较字符串的大小 C、连续两个双引号是合法的字符串常量 D、连续两个单引号是合法的字符常量 1-16、若有语句:int x=12,y=8,z;
z=0.8+x/y;
执行语句后z的值为( )【2015年】 A、1.8 B、1 C、2 D、2.4 1-17、若有语句:int a,b;
scanf(\
如果把整数4赋给a,把整数5赋给b,应该输入( )【2015年】 A、4 5 B、4,5 C、45 D、4;5
1-18、在C语言中,函数值类型在定义时可以缺省,缺省时函数值的隐含类型是( )【2016年】 A、void B、int C、float D、double 1-19、用scanf函数输入一个字符串到数组str中,以下选项中正确的语句是( )【2016年】 A、scanf(\B、scanf(\C、scanf(\D、scanf(\1-20、设有以下定义语句:int m[]={2,4,6,8},*k=m;
以下选项中表达式的值为6的是( )【2016年】 A、*(k+2) B、k+2 C、*k+2 D、*k+=2
二、基本操作题 2-1、C语言中,文件操作fopen函数的原型为FiLE * fopen(char *filename, char *mode),用于打开一个指定文件,若成功则返回一个与之关联的流,否则返回 ① ;代码片段FiLE * fp=fopen(\,\的含义是以 ② 的方式打开路径\对应的文件,当访问的文件是二进制文件时,还需要在字符串\后增加一个字符 ③ ,以上代码片段对应的关闭文件的C语言代码是 ④ 。【2012年】
2-2、在C语言中,可以使用函数 ① 来获取字符串的长度,使用函数 ② 来对两个字符串进行比较,使用宏定义命令 ③ 来定义宏,使用文件包含命令 ④ 实现\文件包含\操作。【2013年】 2-3、在C语言中,文件的打开方式决定对该文件所能进行的操作权限,文件打开方式参数 ① 以只读方式打开一个文本文件, ② 以写方式打开一个文本文件, ③ 以读/写方式打开一个文本文件, ④ 以在文件后面添加数据方式打开文本文件。【2014年】
三、综合应用题
3-1、30人参观博物馆共花50美元,其中成年男子门票为3美元/人,成年女子2美元/人,小孩1美元/人。编程输出成年男子、成年女子和小孩人数的所有组合。【2012年】 题目分析如下:
设x,y,z分别代表成年男子、成年女子和小孩人数。按题目要求,可得下面方程:
x+y+z=30 (1) 3x+2y+z=50 (2)
用程序求此不定方程的非负整数解,可先通过(2)-(1)式得:
2x+y=20 (3)
第 2 页 共 46 页
由(3)式可知,x变化范围是 ① 根据以上分析编写程序如下: #include
int x,y,z; /*x,y,z分别代表成年男子、成年女子、小孩人数*/ printf(\; for(x=0; ② ;x++) {
_______③_______; /*按照(3)式根据x求y*/ _______④_______; /*由(1)式求得z*/
if(3*x+2*y+z==50) /*当前得到的一组解是否满足式(2)*/
printf(\;
} }
3-2、民警小张在某个案件中带回4个嫌疑人A,B,C,D,其中有一位是小偷,现在小张分别对
4个嫌疑人进行询问:
A说:我不是罪犯; B 说:C是罪犯; C说:D是罪犯;
D说:我不是罪犯而且B也不是罪犯。
已知其中3人说的是真话,1人说的是假话,请根据以上信息帮助小张找出罪犯。【2013年】 #include
int i;
char who='A'; int isFound=0;
for(i=0; ___________________ ;i++){
int sum=0;
who= ___________________; if(who!='A') sum++; if(who=='C') sum++; if(who=='D') sum++;
if(___________________) sum++; if(___________________){ printf(\罪犯是%c\\n\isFound=1; } }
if(!isFound)
printf(\没有找到符合条件的人\}
3-3、输入三角形的三边a、b、c,判断a、b、c能否构成三角形,如果能够构成三角形则判断
第 3 页 共 46 页
为何种类型的三角形:等腰三角形、等边三角形、直角三角形、等腰直角三角形、一般三角形。 说明:一般三角形:两条边长之和大于第三条边长;
等腰三角形:两条边长相等; 等边三角形:三条边长相等;
直角三角形:两条边长的平方和等于第三条边长的平方。【2014年】 #include
float a,b,c;
printf(\请输入三角形边长:\\n\scanf(\if(___________________)
printf(\不能构成三角形\\n\else if(___________________) if((a==b)||(b==c)||(a==c)) printf(\等腰直角三角形\\n\else
printf(\直角三角形\\n\else if(___________________) printf(\等边三角形\\n\else if(___________________) printf(\等腰三角形\\n\else
printf(\一般三角形\\n\}
3-4、输入一行文字,找出其中大写字母、小写字母、空格、数字及其字符各有多少。【2015年】 main() {
char str[40],*p,s1=0,s2=0,s3=0,s4=0,s5=0; gets(str); p=str; while(*p) {
if (_____________________) s1++; else if(_____________________) s2++; else if(_____________________) s3++; else if(_____________________) s4++; else s5++; p++; }
printf(\大写字母:%d 小写字母:%d数字:%d空格:%d其它:%d \\n\}
3-5、以下程序的功能是:从键盘输入班级学生的成绩,计算学生成绩的平均分,并输出高于平均分的学生成绩,输入负数表示输入结束,班级人数不超过100人。【2016年】 int main()
第 4 页 共 46 页
{
float x[100],sum=0.0,ave,s; int n=0,i;
printf(\scanf(\
while(s>=0.0&&n<100) { sum=_______①______; x[n]=s;
_______②________; scanf(\}
ave=sum/n;
printf(\printf(\for(i=0;____③___;i++) if(_____④_____)
printf(\return 0; }
四、程序分析题 1、阅读程序题
4-1-1、下列程序的运行结果是_____________________________【2007年】 #include
{ int x=3; do {
printf(\
} while(!(--x)); }
4-1-2、下列程序的运行结果是_____________________________【2007年】 #include
{ int x=4,y=8,z; z=x<<2|y;
printf(\}
4-1-3、下列程序的运行结果是_____________________________【2007年】 #include
{ char x='E',y='e'; printf(\ printf(\
printf(\}
第 5 页 共 46 页