韩山专插本C语言真题卷

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

韩山师范学院2011年专升本插班生考试试题
教育技术学专业 C语言程序设计试卷(A卷)
一、填空题(每空1分,共10分)
1.C程序的基本单位是________。

2.C语言源程序文件的后缀是________。

3.标识符的第一个字符必须是_______或________。

4.表达式10%3的结果是_________。

5.当打开的文件被成功关闭后,函数fclose()返回。

6.在每个C语句和数据定义的最后必须有一个____________。

7.若有定义:double A[3][5];则A数组中行下标的下限为_____________,列下标的上限为_____________。

8.若x=2,y=3,则 x|y<<2的结果是___________。

二、单项选择题(每小题1.5分,共30分)
1.算法是指为解决某个特定问题而采取的正确且有限的步骤,下面不属于算法的5个特性的是( )。

A.高效性 B.有穷性 C.有零个输入或多个输入 D.确定性
2.C语言程序的三种基本结构是()。

A.顺序结构、选择结构、循环结构
B.递归结构、循环结构、转移结构
C.嵌套结构、递归结构、顺序结构
D.循环结构、转移结构、顺序结构
3.有下面的程序段
char a[3],b[]=“China”;
a=b;
printf(“%s”,a);
A.运行后将输出China B.运行后将输出Ch
C.运行后将输出Chi D.编译出错
4.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。

A.x=n%2.5 B.x=y==5 C.x+n=i D.x=5=4+1 5.若执行以下程序时从键盘上输入9,则输出结果是()。

A.11 B.10 C.9 D.8
main()
{ int n;
scanf("%d",&n);
if(n++<10) printf("%d\n",n);
else printf("%d\n",n--);
}
6.设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为()。

A.不定值 B.4 C.3 D.1
7.有以下程序段
int k=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.void play(var :Integer,var b:Integer)
B.void play(a,b)
C.void play(int a,int b)
D.Sub play(a as integer,b as integer)
10.以下程序的输出结果是()。

A.0 B.29 C.31 D.无定值
fun(int x, int y, int z)
{ z=x*x+y*y; }
main()
{ int a=31;
fun(5,2,a);
printf("%d",a);
}
11.下列程序的输出结果是()。

A.非法 B.a[4]的地址 C.5 D.3
main()
{ char a[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.EOF B.0 C.非零值 D.NULL
14.以下程序的输出结果是()。

A.1,5,9, B.1,4,7, C.3,5,7, D.3,6,9,
main()
{ int i, 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.下列程序段的输出结果( )。

int b=10;
printf("%d ",~b);
A.02 B.-20 C.-21 D.-11 18.在C语言中,对文件进行操作的一般步骤是()。

A.打开文件——操作文件——关闭文件
B.操作文件——修改文件——关闭文件
C.读写文件——打开文件——关闭文件
D.读文件——写文件——关闭文件
19.若执行fopen()函数发生错误,则函数的返回值是()。

A.地址值 B.NULL C.1 D.EOF
20.以下程序运行后结果是()。

#define A 3
#define B(a) ((A+1)*a)
main()
{ int x;
x=3*(A+B(7));
printf("%d\n",x);
}
A.93 B.31 C.12 D.不确定
三、阅读程序,将运行结果写到各题右侧的空白处(每小题4分,共20分)1.main()
{ int a=0;
a+=(a=8);
printf("%d\n",a);
}
2.main()
{ int a[3][3]={{1,2},{3,4},{5,6}};
int i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=1;j++)
s+=a[i][j];
printf("%d",s);
}
3.main()
{ char string1[64] = "abc\t";
char *string2 = "def\t";
char string3[] = "123\n";
strcat(string1, string2);
strcat(string1, string3);
printf("%d\n", strlen(string1));
}
4.struct date
{ int a;
char s[5];
}arg={27,"abcd"};
main()
{
arg.a-=5;
strcpy(arg.s,"ABCD");
printf("%d,%s",arg.a,arg.s);
}
5.main()
{ char food[] = "Bread";
char *p;
p = food + strlen(food);
while(--p >= food)
puts(p);
}
四、阅读程序或程序段,填空(每小题4分,共20分)
1.以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标,请填空。

#define N 3
#define M 3
select(int a[N][M],int *n)
{ int i,j,row=1,colum=1;
for(i=0;i<N;i++)
for(j=0;j<M;j++)
if(a[i][j]>a[row][colum]){row=i;colum=j;}
*n= ;
return ;
}
main()
{ int a[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<stdio.h>
void main()
{ int a,b,c,t1,t2;
scanf("%d%d%d",&a,&b,&c);
t1=a<b? ;
t2=c<t1? ;
printf("%d\n",t2);
}
3.下面程序采用函数递归调用的方法计算sum=1+2+3+4+...+n,请填空。

#include "stdio.h"
main()
{ int sum(int);
int i;
scanf("%d",&i);
if(i<=0) printf("Input error!");
else printf("sum=%d",sum(i));
}
int sum(int n)
{
if(n==1) return ;
else return ;
}
4.编写一个程序判定一个字符在一个字符串中出现的次数,如果字符不出现,则返回0,请填空。

#include <stdio.h>
int char_count(char *s,char letter)
{ int count=0;
while(*s)
{ if( )
count++;
}
return ;
}
main()
{ char c,string[50],*str=string;
printf("Input string:");
gets(str);
printf("Input a char:");
scanf("%c",&c);
printf("The number is:%d",char_count(str,c));
}
5.编写一个程序将用户输入的由数字字符和非数字字符组成的字符串中的数字提取出来,请填空。

main()
{
char str[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.设有定义语句 static char s[5」;则s[4]的值是。

5.设x为int型变量。

与逻辑表达式!x等价的关系表达式是。

6.若一全局变量只允许本程序文件中的函数使用,则该变量需要使用的存储类别是。

7.磁盘文件按文件读写方式分类可以为顺序存取文件和。

8.设有下列结构体变量xx的定义,则表达式sizeof(xx)的值是_________。

struct
{ long num;
char name[20];
union{float y; short z;} yz;
}xx;
二、单项选择题(每小题1.5分,共30分)
1.设有定义int x=8, y, z; 则执行y=z=x++, x=y= =z; 语句后,变量x值是( )
A、0
B、1
C、8
D、9
2.有以下程序
main( )
{ int i=1,j=1,k=2;
if((j++‖k++)&&i++) printf("%d,%d,%d\n",i,j,k);}
执行后输出结果是( )
A、 1,1,2
B、2,2,1
C、 2,2,2
D、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()
{ int a=5,b=4,c=3,d=2;
if(a>b>c) printf("%d\n",d);
else if((c-1>=d)= =1) printf("%d\n",d+1);
else printf("%d\n",d+2);
} 执行后输出结果是 ( )
A、2
B、3
C、 4
D、编译时有错,无结果
5.以下程序段 ( )
x=1;
do { x=x*x;} while (!x);
A、是死循环
B、循环执行二次
C、循环执行一次
D、有语法错误
6.以下不能正确定义二维数组的选项是( )
A、 int a[2][2]={{1},{2}};
B、 int a[][2]={1,2,3,4};
C、 int a[2][2]={{1},2,3};
D、 int a[2][]={{1,2},{3,4}};
7.有以下程序
main()
{ int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
int i,s=0;
for(i=0;i<4;i++) s+=aa[i][1];
printf(“%d\n”,s);
}
程序运行后的输出结果是 ( )
A、11
B、19
C、 13
D、20
8.以下程序的输出结果是 ( )
main()
{ char ch[3][5]={"AAAA","BBB","CC"};
printf("\"%s\"\n",ch[1]);
}
A、"AAAA"
B、"BBB"
C、"BBBCC"
D、"CC"
9.有以下程序
#define f(x) x*x
main( )
{ int i;
i=f(4+4)/f(2+2);
printf(“%d\n”,i);
} 执行后输出结果是( )
A、28
B、22
C、16
D、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.若有以下定义 int a[2][3],则对a数组第i行第j列元素的正确引用是( )
A、 *(*(a+i)+j)
B、 (a+i)[j]
C、 *(a+i+j)
D、 *(a+i)+j
15.有以下程序
void fun(char *a, char *b)
{ a=b; (*a)++; }
main()
{ char c1='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.设有以下结构体类型:
struct st
{ char name[8];
int num;
float s[4];
}student[50];
并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件fp中,以下不正确的形式是( )
A、fwrite(student,sizeof(struct st),50,fp);
B、fwrite(student,50*sizeof(struct st),1,fp);
C、fwrite(student,25*sizeof(struct st),25,fp);
D、for(i =0;i<50;i++)
fwrite(student+i, sizeof(struct st),1,fp);
18.若有说明语句
char a[ ]= "It is mine";
char *p=" It is mine";
则以下不正确的叙述是()
A、a+1表示的是字符t的地址
B、p指向另外的字符串时,字符串的长度不受限制
C、p变量中存放的地址值可以改变
D、a中只能存放10个字符
19.当调用函数时,实参是一个数组名,则向函数传送的是 ( )
A、数组的长度
B、数组的首地址
C、数组每一个元素的地址
D、数组每一个元素中的值
20.设有变量说明 int a=3,b=6; char c; 若执行赋值语句 c=(a^b)<<2;
则c的二进制值是()。

A、00011100
B、00000111
C、00000001
D、00010100
三、阅读程序,将运行结果写到各题右侧的空白处(每小题4分,共20分)
1.#include <stdio.h>
main()
{ char str[]="1234567";
int i;
for(i=0; i<7; i+=3)
printf("%s\n", str+i);
}
2.#include <stdio.h>
main()
{ int i;
for(i=0;i<3;i++)
switch(i)
{ case 0: printf("%d",i);
case 2: printf("%d",i);
default: printf("%d",i);
}
}
3.#include <stdio.h>
main()
{
int i;
for (i=1;i<6;i++)
{
if (i%2){
printf("#");
continue; }
printf("*");
}
printf("\n");
}
4.#include <stdio.h>
int b=1;
func (int p)
{
static int d=5;
d+=p;
printf ("%d,",d);
return (d );
}
main ()
{
int a=3;
printf("%d\n",func(a+func(b)));
}
5.#include <stdio.h>
struct stu
{ int num; char name[10]; int age;};
void py(struct stu *p)
{printf("%s\n", (*p).name);}
main()
{
struct stu student[3]={{1001,"Sun",25},{1002,"Ling",23},{1003,"Shen",22}};
py(student+2);
}
四、阅读程序或程序段,填空(每小题4分,共20分)
1.下面程序的功能是调用fun函数以删除字符串中指定的字符,请填空。

void fun(char s[],int c)
{ int i,j;
for(i=0,j=0;s[i]!='\0';i++)
if ( )
s[j]='\0';
}
main()
{ char str[]="abcdefgAbcd", ch;
scanf("%c",&ch);
fun(str,ch);
printf("%s\n",str);
}
2.下面程序是按学生姓名查询其排名和平均成绩,查询可连续进行直到键入0时结束,请填空。

#include<string.h>
#define NUM 4
struct student
{ int rank;
char *name;
float score;};
stu[]={3,”Tom”,89.3,4,”Mary”,78.2,1, ”Jack”,95.1,2, ”Jim”,90.6}; main()
{ char str[10]; int i;
do
{ printf("Enter a name: ");
scanf("%s",str);
for(i=0;i<NUM;i++)
if ( )
{ printf("%s,%d,%f\n",stu[i].name, stu[i].rank,stu[i].score); break;}
if(i>=NUM) printf("Not found\n");
}while(strcmp(str,”0”)!=0);
}
3.下面程序是用“顺序查找法”查找数组中的元素,请填空。

main()
{ int a[8]={25,57,48,37,12,92,86,33};
int i, x;
scanf("%d", &x);
for(i=0;i<8;i++)
if ( )
{printf("Found!The index is :%d\n", i);break;}
if( )
printf(“Can’t found! ");
}
4.下面程序由键盘输入一些字符,逐个把它们送到磁盘文件中,直到输入一个“!”
为止,请填空。

#include<stdio.h>
main( )
{ FILE *fp;
char ch,fname[10];
printf("Input name of file: \n"); gets(fname);
if((fp=fopen(fname, "w"))= =NULL)
{printf("cannot open \n");exit(0);}
printf("Enter data:\n");
while ( ) fputc ( );
fclose(fp);
5.下面函数 fun 的功能是:将在字符串s中下标为奇数位置上的字符,紧随其后重复出现一次,放在一个新串t中, 例如:当s中的字符串为:"ABCDEF" 时,则t 中的字符串应为:"BBDDFF"。

#include<string.h>
void fun (char *s, char *t)
{ int i,j;
for(i=0;i<=strlen(s);i++)
{ ;
;
}
}
main()
{ char s[100],t[100];
scanf("%s",s);
fun(s,t);
printf("The result is: %s\n", t);
}
五、编程题(每小题10分,共20分)
1.编一个程序,将输入的一个字符串按反序存放,要求在主函数中输入字符串并输出反序后的字符串,在被调用函数中完成反序存放。

例如:输入字符串“abcdefg”,输出“gfedcba”。

2.有一个班5位学生,各学4门课程,查找出有一门以上课程不及格的学生,打印出其全部课程的成绩。

韩山师范学院2012年专升本插班生考试
教育技术学 专业 C 语言程序设计 试卷 (A 卷)
一、填空题(每空1分,共10分)
1.每个C 程序都必须包括一个________函数。

2.C 语言源程序编辑完成后,需要经过 ________、________两个环节,才能执行。

3.若变量a,b 已经定义为int 类型并赋值为4和5,要求用printf 函数以a=4,b=5
的形式输出,请写出完整的输出语
句 。

4.表达式10/3的结果是 。

5.算法的复杂度主要包括时间复杂度和 。

6.C 语言语句的结束符是____________。

7.数组int A[10];中有 个元素,下标上限为_____________。

8.若x=2,y=12,则 x&y>>2的结果是___________。

二、单项选择题(每题1.5分,共30分)
1.算法是指为解决某个特定问题而采取的正确且有限的步骤,下面不属于算法的5个特性的是( )。

A.高效性B.有穷性C.有零个输入或多个输入D.确定性2.以下哪个不是C语言程序的三种基本结构()。

A.顺序结构B.递归结构C.循环结构D.选择结构3.有以下程序:
main()
{ int m,n,p;
scanf("m=%dn=%dp=%d",&m,&n,&p);
printf("%d%d%d",m,n,p);
}
若想从键盘上输入数据,使变量m的值为123,n的值为456,p的值为789,则正确的输入是()。

A.m=123n=456p=789
B.m=123 n=456 p=789
C.m=123,n=456,p=789
D.123 456 789
4.下面四个选项中,哪个选项是合法变量()。

A.4as B.a#3 C._3a D.“a”
5.若执行以下程序时从键盘上输入9,则输出结果是()。

A.11 B.10 C.9 D.8
mainn()
{ int n;
scanf("%d",&n);
if(n<10) printf("%d\n",n+1);
else printf("%d\n",n-1);
}
6.设x、y、t均为int型变量,则执行语句:x=y=3;t=x+y++;后,y的值为()。

A.不定值B.4 C.3 D.1
7.有以下程序段
int k=0;
while(k<1)k++;
while 循环执行的次数是()。

A.无限次B.有语法错,不能执行
C.一次也不执行D.执行1次
8.若变量c为int类型,能正确判断出c为数字的表达式是()。

A.('0'<=c)and ('9'>=c) B.(c>= '0')&&(c<= '9')
C.'0'<=c<= '9' D.(c>= '0')||(c<= '9')
9.以下正确的函数声明形式是()。

A. double fun(int x , int y)
B. double fun(int x ; int y)
C. double fun(int x , int y) ;
D. double fun(int x ; int y) ;
10.以下程序的输出结果是()。

A.0 B.29 C.31 D.无定值
int fun(int x, int y)
{ int z; z=x*x+y*y; return z;}
main()
{ int a=31;
a=fun(5,2);
printf("%d",a);
}
11.下列程序的输出结果是()。

A.非法B.a[1]的地址C.9 D.8 main()
{ char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+1;
printf("%d",*p);
}
12.下列能正确定义一维数组的选项是()。

A.int a[5]={0,1,2,3,4,5}; B.int a[ ]={0,1,2,3,4,5}; C.char a={'A', 'B', 'C'}; D.int a[5]="0123";
13.有下列程序:
#include <stdio.h>
void WriteStr(char *fn,char *str)
{FILE *fp;
fp=fopen(fn,"w"); fputs(str,fp); fclose(fp);
}
main( )
{
WriteStr("t1.dat","start");
WriteStr("t1.dat","end");
}
程序运行后,文件t1.dat 中的内容是()。

A.start B.end
C.startend D.endrt
14.以下程序的输出结果是( )。

main( )
{ int a[ ]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p<a+10;p++)
printf("%d,",*p);
}
A.1,2,3,4,5,6,7,8,9,0, B.2,3,4,5,6,7,8,9,10,1,
C.0,1,2,3,4,5,6,7,8,9,D.1,1,1,1,1,1,1,1,1,1,
15.有定义语句:int b;char c[10];,则正确的输入语句是( )。

A.scanf("%d%s",&b,&c);
B.scanf("%d%s",&b, c);
C.scanf("%d%s",b, c);
D.scanf("%d%s",b,&c);
16.下列程序的功能是:给r 输入数据后计算半径为r 的圆面积s。

程序在编译时出错。

main( )
/* Beginning */
{ int r; float s;
scanf("%d",&r);
s=π*r*r;
printf("s=%f\n",s);
}
出错的原因是( )。

A.注释语句书写位置错误
B.存放圆半径的变量r不应该定义为整型
C.输出语句中格式描述符非法
D.计算圆面积的赋值语句中使用了非法变量
17.下列程序段的输出结果( )。

int b=10;
printf("%d ",b<<1);
A.01 B.20 C.21 D.11
18.在C语言中,对文件进行操作的一般步骤是()。

A.操作文件——修改文件——关闭文件
B.打开文件——操作文件——关闭文件
C.读文件——写文件——关闭文件
D.读写文件——打开文件——关闭文件
19.使用fopen()函数打开文件时,向文本文件尾增加数据,文件的使用方式应为()。

A.r B.a C.w+ D.ab+
20.以下程序运行后结果是()。

#define A 5
main()
{ int x=0;
x=3*(A+7);
printf("%d\n",x);
}
A.36
B.0
C.21
D.不确定
三、阅读程序,将运行结果写到各题右侧的空白处(每
题4分,共20分)
1.main()
{ int a=0;
a='a';
printf("%c", a);
}
2.#include<string.h>
main( )
{
char p[]={'a','b','c', '\0'};
char q[10]={'a','b','c'};
printf("%d,",strlen(q));
printf("%d ",strlen(p));
}
3.long func(int x)
{ long p;
if (x==0||x==1) return(2);
p=x*func(x-1);
return(p);
}
main()
{ printf("%d\n",func(2)); }
4.struct date
{ int a;
char s[5];
}arg={27,"abcd"};
main()
{
arg.a=5;
strcpy(arg.s,"AB");
printf("%d,%s",arg.a,arg.s);
}
5.#include <stdio.h>
main()
{
if (100)
printf("Great!\n");
else if (60)
printf("Pass\n");
else
printf("Fail\n");
}
四、阅读程序或程序段,填空(每题4分,共20分)
1.以下程序打印左下三角的九九乘法表,请填空。

#include <stdio.h>
main()
{
int i,j;
for(i=1;i<10;i++)
{ for(j=1; ;j++)
printf("%d*%d=%2d ", );
printf("\n");
}
}
2.以下程序的功能是:输出a,b,c三个变量中的最大值,请填空。

#include<stdio.h>
void main()
{ int a,b,c,t1,t2;
scanf("%d%d%d",&a,&b,&c);
t1= ? a:b;
t2= ? c:t1 ;
printf("%d\n",t2);
}
3.以下程序中,select函数的功能是:在一维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值的下标。

请填空。

#define N 10
select(int a[N],int *n)
{ int i,k=0;
for(i=1;i<N;i++)
if(a[i] >a[k])
k=i;
;
;
}
main()
{ int a[N] ={9,11,23,6,1,15,9,17,20},max,n;
max=select(a,&n);
printf("max=%d,n=%d\n",max,n);
}
4.以下程序的功能是:输入a和b两整数,按由大到小顺序输出,请填空。

main()
{
int *p1,*p2,*p,a,b;
scanf("%d,%d",&a,&b);
;
;
if(a<b)
{ p=p1;p1=p2;p2=p; }
printf(“*p1=%d,*p2=%d",*p1,*p2);
}
5.以下函数的功能是:将from指针所指向的内容复制到to指针所指向空间,请填空。

void copy_string(char *from,char *to)
{
for(; ;from++,to++)
;
*to='\0';
}
五、编程题(每题10分,共20分)
1.编写程序, 把从键盘输入的数字按下列对应关系显示。

输入数字显示
1 One
2 Two
3 Three
其他Other
2.求1+2+3+4+……+n 的值,并输出结果,其中n由用户输入。

韩山师范学院2013年专升本插班生考试试卷教育技术学专业 C语言程序设计试卷(A卷)
一、填空题(每空1分,共10分)
1.结构化程序设计方法规定程序或程序段的结构有三种: 、选择结构和循环结构。

2.在内存中存储 "A" 要占用 个字节,存储 'A' 要占用 字节。

3.有语句:char A[]={"I am a student"};该字符串的长度是 ,A[3]= 。

4.能表述 "20<x<30" 的C 语言表达式是 。

5.C 语言的预处理语句以_____ _____开头。

6.数组名代表数组的 。

7.C 语言中字符串的结束符是 。

8.定义fp 为文件型指针变量的定义方法为__ _______。

二、单项选择题(每题1.5分,共30分)
1、 下面标识符中,不合法的用户标识符为________。

A .hot_do
B .cat1
C ._pri
D .2ab
2、 下列叙述中正确的是________。

A .每个C 源文件中都必须有一个main()函数
B.在C程序中main()函数的位置是固定的
C.一个C程序只能由一个源文件组成
D.在C程序的函数中不能定义另一个函数
3.以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子x/yz的C语言表达式是________。

A.x/y*z B.x*(1/(y*z)) C.x/y*1/z D.x/y/z 4.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列,如果字符串长度大于5,则输出按________方式。

A.从左起输出该字符串,右补空格
B.按原字符长从左向右全部输出
C.右对齐输出该字串,左补空格
D.输出错误信息
5、以下程序段的输出结果是________。

char str[15]=”hello!”;
printf(“%d\n”,strlen(str));
A.15 B.14 C.7 D.6
6.巳知字母A的ASCII码是65,以下程序的执行结果是________。

#include<stdio.h>
void main()
{
char c1='A',C2='Y';
printf("%d,%d\n",c1,c2);
}
A.A,Y B.65,65 C.65,90 D.65,89
7.以下选项中,值为1的表达式________。

A.1-'0' B.1-'\0' C.'1'-0 D.'\0'-'0' 8.以下合法的if语句(设int x,a,b,c;)是________。

A.if(a=b)x++;B.if(a=<b)x++;
C.if(a<>b)x++;D.if(a=>b)x++;
9.若k为整型变量,则以下循环体执行的次数为__________。

for(k=2; k<0;k--) printf("%d", k);
A.0 B.1 C.2 D.无限次
10.C语言中while和do-while循环的主要区别是__________。

A.d o-while的循环体至少无条件执行一次
B.w hile的循环控制条件比do-while的循环控制条件严格
C.d o-while允许从外部转到循环体内
D.d o-while的循环体不能是复合语句
11.若有说明,int b[3][4]; 则对数组元素的正确引用是_________。

A.b[3][4] B.b[3][0] C.b(1)(2) D.b[3-3][2-0] 12.以下正确的定义语句是_________。

A.i nt a[1][4]={1,2,3,4,5};
B.f loat x[3][]={{1},{2},{3}};
C.l ong b[2][3]={{1},{1,2},{1,2,3}};
D.d ouble y[][3]={0};
13.以下所列的各函数首部中,正确的是__________。

A.void play(var a:Integer,var b:Integer) B.void play(int a,b)
C.void play(int a,int b) D.Sub play(a as integer,b as integer) 14.以下程序的运行结果是________。

#define f(x) x*x
void main()
{ int i; i=f(2+1); printf("%d\n",i); }
A.4 B.9 C.6 D.5
15.不能把字符串"Hello!"赋给数组b的语句是。

A.char b[10]={'H','e','l','l','o','!'}; B.char b[10]; b="Hello!";
C. char b[10]; strcpy(b,"Hello!"); D.char b[10]="Hello!"; 16.若有说明语句"int a[10],*p=a; ",对数组元素的正确引用是。

A.*(a+10) B.*(p-1) C.p[2] D.p+2
17.在C语言中,当定义一个共用体类型,并用其定义某变量后,系统分配给该变量的内存大小是________。

A.各成员所需要内存空间的总和B.第一个成员所占内存空间C.成员中所有成员空间最大者D.成员中所有成员空间最小者18.若int a=4,b; b=a^a; 则b= 。

A.1 B.4 C.64 D.0
19.若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是
A.EO B.0C.非零值D.NULL
20.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则打开文件的方式字符串应是________。

A."ab+" B."wb+" C."rb" D."ab"
三、阅读程序,将运行结果写到各题右侧的空白处(每
题4分,共20分)
1.#include<stdio.h>
void main ( )
{
int i, sum;
i=1; sum=0;
do{
sum=sum+ i;
i=i+1;
} while (i <=10);
printf (“sum = %d \n”, sum);
printf (“i = %d \n”, i );
}
2.#include<stdio.h>
void main( )
{ int a, b, c;
a = 10;
b = 20;
c = max (a, b);
printf ("max = %d\n", c);
}
int max (int x, int y)
{ int z;
if (x>y)
z =x;
else
z = y;
return (z);
}
3.#include <stdio.h>
void main()
{ int a[8]={4,8,12,16,20,24,28,32};
int *p=a;
do{ printf(“%d\t”,*p);
p++;
}while(p<a+8);
}
4.#include <stdio.h>
void main()
{ char s[]="abcdef";
s[3]='\0';
printf("%s\n",s);
}
5.#include<stdio.h>
void main()
{
enum type{ a,b=-5,c,d=6,f,g=9};
printf("%d,%d,%d\n",a,c,f);
}
四、阅读程序或程序段,填空(每题4分,共20分)
1.已知能被4整除而不能被100整除的或者能被400整除的年份是润年,则判断某一年是否是润年的程序如下:
#include <stdio.h>
void main()
{
int year,leap;
scanf(“%d”,&y ear);
if(_________________________________)
leap=1;
else
leap=0;
if(_____________) printf("是润年.\n");
else printf("不是润年.\n");
}
2.韩信点兵。

韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。

下面程序的主要功能是计算韩信至少有多少兵。

#include <stdio.h>
void main()
{
int x = 1;
int find = 0;
for (x=1; __ __; x++)
{
if (x%5==1 && x%6==5 && x%7==4 && x%11==10)
{ printf(" x = %d\n", x);
____________;
}
}
}
3.求矩阵主次对角线之和。

#include <stdio.h>
void main()
{ int a[3][3]={9,7,5,1,2,4,6,8,0};
int i,j,s1=0,s2=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{ if( __ __ )
s1=s1+a[i][j];
if( __ __ )
s2=s2+a[i][j];
}
p rintf(“%d\n%d\n”,s1,s2);
}
4.输入两个数,按从小到大的顺序输出
#include <stdio.h>
void swap(int *p1,int *p2)
{
int temp;
temp=*p1;*p1=*p2;*p2= ;
}
void main(){
int a,b;
scanf(“%d,%d”,&a,&b);
if(a>b)swap( );
printf(“%d,%d\n”,a,b);
}
5.以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。

#include <stdio.h>
void main()
{
FILE *fp;
char c;
fp= ;
do{
c=getchar();
fputc(c,fp);
}while(c!=EOF);
;
}
五、编程题(每题10分,共20分)
1.从键盘输入的10个整数中,找出第一个能被7整除的数。

若找到,打印此数后退出循环;若未找到,打印“not exist”。

2.从键盘上输入10个数存入一维数组中,求这10数中的最大值与最小值
并输出。

韩山师范学院2014年本科插班生考试试卷
教育技术学专业 C语言程序设计试卷(A卷)
一、填空题(每空1分,共10分)
1.C语言的标识符必须以________或________开头。

2.C语言程序的执行是从________函数开始。

3.fgets函数的作用是从指定文件读入一个________。

4.表达式13%10的结果是________。

5. 若有定义:int a[3][5];则数组a中共有________个元素。

行下标的下界是________,行下标的上界是________。

6. 若x=3,y=2,则 x|y<<2的结果是___________。

7.数据的输入输出是针对________而言的。

1. 一个C程序的执行是从__________
A.main()函数开始,直到main()函数结束
B.第一个函数开始,直到最后一个函数结束
C.第一个语句开始,直到最后一个语句结束
D.main()函数开始,到最后一个函数结束
2. 一个C程序是由__________。

A.一个主程序和若干子程序组成
B.一个或多个函数组成
C.若干过程组成
D.若干子程序组成
3. 下面不正确
...的字符串常量是_________。

A. 'abc'
B. "12'12"
C. "0"
D. " "
4.以下结果为整数的表达式(设有int i;char c;float f;)_________
A.i+f
B.i*c
C.c+f
D.i+c+f
5. 设char ch;以下正确的赋值语句是_________
A.ch= '123’;
B.ch= '\xff’;
C.ch= '\08’;
D.ch=”\”;
6. 设int m=1,n=2,则m=n的值是_________
A.0
B.1
C.2
D.3
7. 如下程序的执行结果是_________
main()
{
int n=1,m=2;
printf("%d %d ",++n,m++);
}
A.2 1
B.1 2
C.2 2
D.1 1
8. 设int a=1,b=2,c=3; 则表达式a==c||a+b>=c的值是__________
A. F
B. 0
C. 1
D. T
9. C语言对嵌套if语句的规定是:else总是与 __________ 配对。

A. 其之前最近的if
B. 第一个if
C. 缩进位置相同的if
D. 其之前最近且不带else的if
10.下面表达式中__________的值等于0。

(设:int a=1;b='0';)
A.!a==!b
B.!a||b
C.!(a==b)
D.a&&!b
11. 执行下列程序,输入为1的输出结果是__ __
#include <stdio.h>
main()
{ int k;
scanf(“%d”,&k);
switch(k)
{ case 1:printf(“%d\n”,k++);
case 2:printf(“%d\n”,k++);
case 3:printf(“%d\n”,k++);
case 4: printf(“%d\n”,k++);break;
default:printf(“FULL!\n”);
}
}
A.1
B.2
C.2
D.1
3 2
4 3
5 4
12. 以下正确的函数声明形式是__________
A. double fun(int x,int y)
B. double fun(int x;int y)
C. double fun(int x,int y);
D. double fun(int x;int y);
13. 以下程序段__________
x=-1;
do
{ x=x*x;}
While(!x);
A.是死循环
B.循环执行二次
C.循环执行一次
D.语法错误
14. 算法是指为解决某个特定问题而采取的正确且有限的步骤,下面不属于算法的5个特性的是( )。

A.高效性 B.有穷性 C.有零个输入或多个输入 D.确定性15. C语言程序的三种基本结构是()。

A.顺序结构、选择结构、循环结构
B.递归结构、循环结构、转移结构
C.嵌套结构、递归结构、顺序结构
D.循环结构、转移结构、顺序结构
16.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是__________
struct stud
{ char num[6];
double ave;
} a;
A.14 B. 18 C.26 D.22
17.设i和x都是整型,则以下for循环______
for (i=1,x=876;i<=6&&x!=876;i++) scanf("%d",&x);
A. 最多执行6次
B. 最多执行5次
C. 是无限循环
D. 循环体一次也不执行
18.若有说明:int a[3][4];则对数组元素的正确引用是__________
A. a[2][4]
B. a[1,3]
C. a[1+1][0]
D. a(2)(1)
19.若有以下说明, 请选出哪个是对a数组元素地址的正确引用________
int a[5],*p=a;
A. &a[5]
B. p+2
C. a++
D. &a
20.以下不正确
...的说法为_________
A. 在不同函数中可以使用相同名字的变量
B. 形式参数是局部变量
C. 在函数内定义的变量只在本函数范围内有效
D. 在函数内的复合语句中定义的变量在本函数范围内有效
三、阅读程序,将运行结果写到各题右侧的空白处(每
小题4分,共20分)
1.main()
{ int a=0;
a+=(a=8);
printf("%d\n",a);
}
2.main()
{ int a[3] ={1,2,3};
int i,s=0;
for(i=1;i<3;i++)
s+=a[i];
printf("%d",s);
}
3.main()
{ char string1[64] = "abc";
char *string2 = "def";
char string3[] = "123";
strcat(string1, string2);
strcat(string1, string3);
printf("%d\n", strlen(string1));
}
4.struct date
{ int a;
char s[5];
}arg={27,"abcd"};
main()
{
arg.a=5;
strcpy(arg.s,"ABCD");
printf("%d,%s",arg.a,arg.s);
}
5.main()
{ char food[] = "Bread";
char *p;
p = food;
puts(p);
}
四、阅读程序或程序段,填空(每小题4分,共20
分)
1.以下程序的功能是:在N行M列的二维数组中,找出最小值,以及最小值所在的行下标,请填空。

#define N 3
#define M 3
main()
{ int a[N][M] ={21,11,23,6,1,15,9,17,20};
int i,j,row=0,min=a[0][0];
for(i=0;i<N;i++)
for(j=0;j<M;j++)
if(a[i][j]<min)
{ ①

}
printf("min=%d,line=%d\n",min,row);
}
2.以下程序的功能是:输出a,b,c三个变量中的最大值,请填空。

#include<stdio.h>
void main()
{ int a,b,c,t1,t2;
scanf("%d%d%d",&a,&b,&c);
t1=a<b?① ;
t2=c<t1?② ;
printf("%d\n",t2);
}
3.下面程序用于计算sum=1+2+3+4+...+n,请填空。

#include "stdio.h"
main()
{ int n,i,s=0;
scanf("%d",&n);
for(i=1; ① ;i++)
② ;
printf("sum=%d",s);
}
4.以下程序完成对一维数组Array进行冒泡排序(从大到小),请填空。

main( )
{
int Array[11];
int j, k, temp;
for(j=1;j<11;j++)
scanf(“%d”,&Array[i]);
for(j = 1; j < 10; j++)
for(k = 1; ① ; k++)
if( ② )
{
temp = Array[k];
array[k]=Array[k+1];
array[k+1]=temp;
}
}
5.某同学把邮箱密码忘记了,他只记得密码是一个5位数,67□□8,其中百位和十位上的数字不记得了,他喜欢用39和14的倍数做密码。

请帮他设计一个算法破解该密码。

main()
{ long m;
for(m=67008;m<=67998; ① )
{
if(② )
printf("%ld",m);
}
}
五、编程题(每小题10分,共20分)
1.有一个函数:
-1 (x<0)
y= 0 (x=0)
1 (x>0)
编一程序,输入一个x值,输出y值。

2.输出所有的水仙花数,所谓“水仙花数”是指一个3位数,其各位数字
立方和等于该数本身。

例如:153=13+53+33。

韩山师范学院2015年本科插班生考试试卷
教育技术学 专业 C 语言程序设计 试卷(A 卷)
一、填空题(每空1分,共10分)
1.定义一个宏EOF ,使其与-1等价,定义为 ( #define EOF -1 )。

2.在一个函数内部直接或间接调用该函数本身,称为函数的( 递归 ) 调用。

3.C 语言变量按其作用域分为局部变量和
( 全局变量 )。

4.判断一个字符变量c 是数字字符的表达式是( (c>=’0’)&&(c<=’9’) )。

5.在C 语言中,二维数组元素在内存中的存放顺序是( 按行存
放 )。

6.请把数学式
a
ac b 242 写成C 语言的表达式
( sqrt(b*b-4*a*c)/2*a )。

7.表达式12345==12345/3*3的值为( 1 )。

相关文档
最新文档