中等职业学校计算机应用专业c语言编程基础科试卷及答案

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

中等职业学校计算机应用专业C语言编程基础科试卷及答案
一、填空(共35分)
一、Unix系统诞生于年,是由实验室的KT和DMR用汇编语言开发成功的。

二、在C语言中,标识符主要为,,及的名字利用。

3、C语言中中的大体数据类型包括、和三种。

4、数组是有序是的而且有的数据的集合。

五、C语言中,二维数组元素在内存中的存储顺序是。

六、C语言函数的实参、形参二者类型,一般个数。

7、在C语言中,变量的存储类别有四种,它们是,,和。

八、按照函数可否被其他源文件挪用,函数分为函数和函数两类。

九、文件是存储在外部存储设备上的。

10、概念文件指针变量的格式为。

11、feof( )函数是检测函数,当文件位置指
针处于时,它返回一个值。

1二、用逻辑运算符将或连接起来就是
逻辑表达式。

13、结构化程序设计方式,采用的设计原
则和的来构造程序。

14、程序结构一般采用、和结
构。

1五、第三代高级语言是,注重的是,
之间的关系是从属性的层层挪用关系。

二、单项选择题(共15分)
一、C语言程序由组成。

A. 子程序
B. 主程序和子程序
C. 函数
D. 进程
二、源程序要正确地运行,必需要有什么函数?
A. printf函数
B. 自概念的函数
C. main函数
D. 不需要函数
3、若a为整型变量,且有以下语句
a=-017L;
printf("%d\n",a);
则下面___说法是正确的?
A. 赋值不合法
B. 输出值为-17
C. 输出为不肯定值
D. 输出值为-15
4、下面表达式的值为4.
A. 11/3
B. 3
C. (float)11/3
D. (int)3+
五、在C语言的if语句中,用作判断的表达式为___。

A. 关系表达式
B. 逻辑表达式
C. 算术表达式
D. 任意表达式
六、下面哪一项是不正确的字符串赋值或赋初值的方
式。

A. char *str; str="string";
B. char str[7]={'s','t','r','i','n','g'};
C. char str1[10];str1="string";
D. char str1[]="string",str2[]="";
7、如有以下说明和语句,则输出结果是哪一项?
(strlen(s)为求字符串s的长度的函数)
char s[12]="a book!";
printf("%d",strlen(s));
A. 12
B. 8
C. 7
D. 11
八、C语言可执行程序从什么地方开始执行?
A. 程序中第一条可执行语句
B. 程序中第一个函数
C. 程序中的main函数
D. 包括文件中的第一个函数
九、有一个函数原型如下所示:
abc(float x,float y);
则该函数的返回类型为___。

A. void
B. double
C. int
D. float
10、在C语言程序中,下面哪个是正确的?
A. 函数的概念可以嵌套,但函数的挪用不可以嵌套
B. 函数的概念不可以嵌套,但函数的挪用可以嵌套
C. 函数的概念可以嵌套,函数的挪用也可以嵌套
D. 函数的概念和函数的挪用都不可以嵌套
11、对于类型相同的指针变量,不能进行哪一种
运算?
A. +
B. -
C. =
D. ==
1二、如有以下说明和语句,且0<=i<10, 则下
面是对数组元素的错误引用?
int a[]={1,2,3,4,5,6,7,8,9,0}, *p, i;
p=a;
A. *(a+i)
B. a[p-a]
C. p+i
D. *(&a[i])
13、若是想把一些新的数据添加到文件中,则应
该以下面方式打开文件?
A. fp=fopen,"a"); =fopen("",a);
C. fp=fopen("","a"); =fopen("",'a');
14、下面哪条语句是从文件中读取一个字符?
A. ch=getc();
B. fputc(ch,fp);
C. fscanf("%c",&ch);
D. scanf("%c",&ch);
1五、C语言中的文件类型如何划分?
A. 索引文件和文本文件两种
B. ASCII文件和二进制文件两种
C. 只有文本文件一种
D. 只有二进制文件一种
三、多选题(共20分)
一、下面是概念局部变量贮存类别的保留字。

A. int
B. auto
E. register G. unsigned
二、指出下面各说明语句中是合法的:
A. int abcd[0x80];
B. char 9ab[10];
C. char chi[-200];
D. int aaa[5]={3,4,5};
E. float key[]={,,1,0};
F. char disk[];
G. int n,floppy[n]; H. int
cash[4]={1,2,3,4,5,6};
3、C程序的结构可分为类?
A.顺序结构
B.循环结构
C.程序结构
D.选择
结构
4、C语言的主要特点有
A.精练、紧凑,利用方便、灵活,易于学习和应用。

B.C语言是面向结构化程序设计的语言。

C.C语言允许直接对位、字节和地址进行操作。

D.数据类型丰硕。

E.C语言生成的目标代码质量高。

五、指出下面合法的标识符:
A. 3ab
B. int
C. ABC
D. a_3
E. F. #abc G. _stu2 H. abc f
六、指出下面是合法的用户概念的标识符。

A. P-S
B. putchar
C. double
D. _908
E. *par
F. sheep!
G. wind
H. x y
7、C语言的大体类型有
A. 整型
B. 列举型
C. 数组型
D. 指针型
E. 字符型
F. 构造型
G. 实形
H. 空类型
八、C语言中整形常量按进制划分,有以下几种:
A. 十六进制常量
B. 十进制常量
C. 八进制常量
D. 二进制常量
九、若是要把常量327存入变量a中,a可以概念成类型。

A. int
B. char
C. long
D. float
10、下面写法是对的,而且是常量。

A. 125
B.
C.
D. 'AB'
E. E6
F. 0238
G. 0xabcdef
H. "\n\\\'\123"
四、判断(共20分)
1...在C语言中,函数的参数传递有两种方式:
传递值和传递地址。

()
2...一般来讲,利用指针能使目标程序占用存
储空间大,运行速度快。

()
3...指针变量可以概念为指向字符型、实型和
其他类型的变量。

()
4...内存区的每一个字节都有一个编号,这个
编号就称为“地址”。

()
5...条件编译的益处是可以增加被编译的语
句,从面增加目标代码的长度。

6...写带有参数的宏概念时,宏与带括号的参
数间有空格。

()
7...fscanf()函数从文件中读取字符串,只当碰
到空格符时才结束字符的读取。

()
8...形式参数是指概念函数时跟在函数名后的
小括号内的变量名。

实际参数则是指挪用函数时,
跟在函数名后的小括号内的表达式。

()
9...在概念字符数组的同时初始化数组外,可
以用赋值的形式把字符串存入一个字符的数组中。

()
10.
...
用逻辑运算符将关系表达式或变量连接起
来就是逻辑表达式。

11.
...
在关系运算中,若规定的关系成立,则其
结果为1,反之为0。

12.
...
格式字符前面的数字,指定输入数据所占
宽度,不能指定小数位数。

13.
...
c格式符,用为输出一个字符。

对于整数,
只要它的值在0—256范围内。

()
14.
...
参数ch一般为字符型变量、字符码或字符
本身。

()
15.
...
C语言提供了整型、实型、字符型三种大
体类型。

()
16.
...
逗号运算符在所有运算符中优先级虽最
低,逗号运算符的结合方向是“从左至右”。

()
17.
...
C语言提供了一个惟一的两目运算符(?:),即条件运算符。

()
18.
...
递增、递减运算符的优先级与“取正负”的优先级不同。

()
19.
...
当赋值号两边的数据类型不同时,一般由系统自动进行类型转换。

()
20.
...
自动转换的规则是依照低类型转换到高类型或赋值号的右边类型转换到赋值号左侧的类型来进行的。

()
五、A、写出下列程序的运行结果。

(共5X4分)一、void main()
{int count,i;int x,y,z;x=y=z=0;
scanf("%d",&count);
for(i=0;i<count;i++)
{x=(x+1)%2;y=(y+1)%3;z=(z+1)%5;}
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
若是运行时输入10, 结果是x=___,y=___,z=___。

若是运行时输入17, 结果是x=___,y=___,z=___。

二、
void main()
{int a,b,c;a=2;b=7;c=5;
switch(a>0)
{case 1:
switch(b<10)
{case 1:printf("^");break;
case 0:printf("!");break;}
case 0:
switch(c==5)
{case 0: printf("*");break;
case 1: printf("#");break;
default:printf("%%");break;}
default:
printf("&");}
printf("\n");
}
运行结果:
3、#include <>
main()
{int i,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)
continue;x++;}
}
printf("x=%d\n",x);
}
运行结果:
4、void main()
{float array[3][4]={{,,},{,999.,},{,,},{,0,}};
int i,j;int min;int m,n;
min = array[0][0];
m=0;n=0;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(min > array[i][j])
{min = array[i][j];
m=i;n=j;}
printf("min=%d,m=%d,n=%d\n",min,m,n);
}
运行结果:
五、void main()
{char str[]="ABCDEFGHIJKL";
printf("%s\n",str); 屏幕上显示___
printf("%s\n",&str[4]); 屏幕上显示___
str[2]=str[5];
printf("%s\n",str); 屏幕上显示___
str[9]='\0';
printf("%s\n",str); 屏幕上显示___
}
B,补充程序(共20分)
1,下面这个程序的作用是统计公元1年到公元2000年的闰年个数。

判断闰年的方式是:能被400整除的年是闰年;除能被400整除的年之外,凡是能被4整除,但不能被100整除的年是闰年。

其余年份是平年。

#include <>
void main()
{int year;
int count=0;
for(year=0;year<=2000;year++)
if( (_____)
||( year%4==0 && ____) )
____;
printf("%d",count);
}
二、以下程序从读入的整数数据中,统计大于零的
整数个数和小于零的整数个数.用输入零来结束输入,程
序顶用变量i统计大于零的整数个数,用变量j统计小于
零的整数个数.请填空.
#include <>
main()
{___ n,i,j;
printf("输入非零的整数(输入零结束程序)");
i=j=0;
scanf("%d",&n);
while___
{
if(n>0)i=___;
if(n<0)j=___;___;
}
printf("i=%4d j=%4d\n",i,j);
}
3、下面这个程序打印出以下这个三角形.请填空。

11
222
3333
44444
555555
6666666
8
99
void main()
{int i,j;
for(i=0;i<=___;i++)
{for(j=0;j<___;j++)
printf(___);
___
}
}
4, 有5个学生的成绩需要保留在文件文件中。

保留格式如下:
学生姓名,年龄,成绩<CR>
学生姓名,年龄,成绩<CR>
...
...
请完成下面这段源程序。

void main()
{
FILE *fp;
int i;
char name[80];
int age;
float score;
fp=fopen(___,"w");
for(i=0;i<5;i++)
{printf("请输入第%d个学生的信息\n",___);
printf("姓名:");
scanf(___);
printf("年龄:");
___
printf("成绩:");
___
fprintf(fp,___,name,age,score);
}
___
}
5, 除1外,只能被1和自己本身整除的自然数叫
素数。

下面这个程序就是求2到100之间的素数。


中判断某数为素数的方式为用2到该数平方根之间的
自然数去试整除该数。

若是没有哪个数能够整除该数,
那么该数为素数;若是有,那么时合数。

请填空。

(函数sqrt(a)求a的平方根)
#include<>
#include <>
void main()
{int i,j,k;int flag;
for(i=2;i<=___;i++)
{flag=1;k=(int)sqrt(i);
for(j=2;j<___;j++)
if(___==0)
{flag=0;
break;
}
if(flag)printf("%d\n",i);}
}
六、编写程序,
一、用递归的方式求n!(n!=1*2*3*4…*n)(共
7分)
二、输入在个数,要求设三个指针变量P1,P2,P3,使P1指向三个数的最小数,P2指向中间数,P3指向最大数,然后按由小到大的顺序输出。

(用指针的方式编写)(7分)
3、一循环程序编写下面图形。

(6分)
*
* * *
* * * * *
参考答案
一、填空
一、1969年,美国贝。

二、常量,变量,函数,自概念。

3、整型,浮点型,字符型。

4、相同类型。

五、限性。

六、一致,相同。

7、自动,外部,静态,寄放器。

八、内部,外部。

九、信息集合。

10、FILE*fp。

11、二进制文件尾,0。

1二、关系表达式,逻辑量。

13、自顶向下慢慢求精,单入口单出口,好结构。

14、顺序结构,分支结构,循环结构。

1五、进程式语言,模块设计,模块。

二、单项选择题
1C,2C,3B,4D,5D,6C,7C,8C,9C,10B,11A,
12C,13C,14C,15B。

三、多选题。

1BCE,2ADE,3ABD,4ABCDE,5CDG,6BDG,7ABEG,
8ABC,9ACD,10ABCGH。

四、判断
1对,2错,3对,4对,5错,6错,7错,8对,9错,
10错,11对,12错,13错,14对,15对,16对,17错,
18错,19对,20对。

五、A、写出下列程序的运行结果。

1 、0 1 0 二、^#& 3、x=8
1 2 2
4、min=,m=1,n=2.
五、ABCDEFGHIJKL
EFGHIJKL
AFCDEFGHIJKL
AFCDEFGHI
B、补充程序,
一、year%400==0 2,int
year%100!=0 (n!=0)
count++ i+1
j+1
scanf("%d",&n)
3,9
i
"%d",i
printf("\n");
4, 答案: ""
i
"%s",name
scanf("%d",&age);
scanf("%f",&score);
"%d,%d,%f\n"
fclose(fp);
5,答案:100
k
i%j
六,编写程序,
1,main()
{
int a;
long power(),t;
printf("输入一个整数\n");
scanf("%d ",&a);
t=power(a);
printf("%d!=%d",a,t);
}
long power(x)
int x;
{
long y;
if(x>0)
y=x*power((x-1,(x-1));
else y=1;
return y;
}
2,main()
{
int a,b,c,*p1,*p2,*p3,t;
printf("输入三个数\n"); scanf("%d %d %d",&a,&b,&c);
p1=&a;p2=&b,p3=&c;
if(*p1>*p2)
{t=*p1;*p1=*p2;*p2=t;}
if(*p1>*p3)
{t=*p1;*p1=*p3;*p3=t;}
if(*p2>*p3)
(t=*p2;*p2=*p3;*p3=t;}
printf("%d,%d,%d",*p1,*p2,*p3);
}
3,main()
{
int m,n,k;
for(m=1;m<6;m++,m++)
{
printf("\t\t");
for(k=1;k<=m;k++,k++)
{
printf("\b");
}
for(n=1;n<=m;n++)
{
printf("*");
}
printf("\n");
}
}。

相关文档
最新文档