2015-2016 1 计算机应用(C语言) A卷
信息学院 孙劲飞
高密化专、机专、模专、电专、自专 孔瑞睿
(答案写在答题纸上,写在试题纸上无效)
一、单选题(共30分):
1.C语言的源程序 主函数。
A.可以没有 B.可以有多个 C.有且只有一个 D. 若有,只有一个
2. 下列程序的输出结果是 。
#include “stdio.h”
void main( )
{
int m=12,n=34;
printf(“%d,%d”,m++,++n);
}
A.12,34 B. 13,34 C. 12,35 D. 13,35
3. 下列选项中,不能作为合法常量的是 。
A.12.3e3 B. 123E2 C. 1.234e+4 D. 1.2E-3.5
4. 已有如下定义和输入语句:int a,b,c;
scanf(“%d,%d,%d”,&a,&b,&c);
若要求a、b和c的值分别为10、20和30,正确的数据输入是 。
A. a=10,b=20,c=30 B. 10 20 30 C. 10;20;30 D. 10,20,30
5.C语言对嵌套if语句的规定是:else总是与 配对。
A.其之前最近的if B. 第一个if
C.缩进位置相同的if D. 离它最近的上一个且没有被匹配的if
6. 下列叙述正确的是_____。
A. break只能用于switch语句 B. 在switch语句中必须使用default
C. break语句必须与switch语句中的case配对
D. 在switch语句中,不一定使用break语句
7. 以下程序的输出结果为 。
#include “stdio.h”
void main( )
{
int a=0,i=1;
switch(i)
{
case 0:
case 1: a+=2;
case 2:
case 3: a+=3;
default:a+=7;
}
printf(“%d\n”,a);
}
A.12 B. 7 C.2 D. 5
8. 假设i=5,j=6,表达式k=(i++)*(--j)的值是_____。switch语句表示范围
A.30 B.35 C.25 D.36
9. 对于下面两个循环语句,叙述正确的是_____。
① while(1); ② for(;;);
A.(1)(2)都是无限循环 B.(1)是无限循环,(2)错误
C.(1)循环一次,(2)错误 D.(1)(2)皆错误
10. 判断char型变量c是否为大写字母的正确表达式为_____。
A.‘A’<=c<=‘Z’ B.(c>=A)&&(c<=Z)
C.(c>=‘A’)||(c<=‘Z’) D.(c>=‘A’)&&(c<=‘Z’)
11. 以下对二维数组a进行不正确初始化的是_____。
A. int a[2][ ]={{3,2,1},{1,2,3}}; B. int a[ ][3]={{3,2,1},{1,2,3}};
C. int a[2][3]={{3,2},{1,2}}; D. int a[3][2]={3,2,1,1,2,3};
12.在C语言中,引用数组元素时,其数组元素下标的数据类型允许是_____。
A.整型常量 B.整型表达式 C.整型常量或整型表达式 D.任何类型的表达式
13. 以下关于return语句的叙述中正确的是_____。
A. 一个用户自定义函数中必须有一条return语句
B. 一个用户自定义函数中可以根据不同情况设置多条return语句
C. 定义成void类型的函数中可以有带返回值的return语句
D. 没有return语句的用户自定义函数在执行结束后不能返回到调用处
14. 下面程序段的运行结果是_____。
char str[10]={‘A’,‘B’, ‘C’, ‘\0’,‘D’, ‘E’,‘\0’};
printf(“%s”,str);
A.ABC B.‘A’‘B’‘C’ C.ABC DE D.A,B,C
15. 以下程序的运行结果是_____。
#include “stdio.h”
#define PT 3.5
#define S(x) PT*x*x
void main( )
{
int a=1,b=2;
printf(“%4.1f\n”,S(a+b));
}
A.14.0 B.31.5 C.7.5 D.程序有错误,无输出结果
二、填空题(共20分):
1.结构化程序设计的三种基本程序结构为顺序结构、分支结构和________。
2. 语句printf(“\n”);中“\n”的作用是________。
3.在Visual C++6.0环境中,一个int类型数据在内存中占用________个字节。
4.C语言中,若程序中使用了库函数sqrt( ),则在程序中应该引用头文件________。
5.程序中可被连续或重复执行的步骤称为循环,循环执行的语句或语句组称为________。
6.如果要比较两个字符串中的字符是否相同,可使用的库函数是________。
7. 字符串“abcd”在内存中占________个字节。
8.若函数只是用于完成某些操作,函数没有返回值,则必须把函数定义成________类型。
9. 执行下面程序段后,*p等于________。
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
p++;
p++;
10.在C语言的程序中可包含各种以符号“#”开头的编译指令,这些指令称为________。
三、判断题(共10分):
1. ( )C语言的注释语句在程序的执行中不起任何作用,也不会产生任何代码。
2. ( )C语言对标识符字符是不区分大小写的。
3. ( )转义字符用反斜杠后面跟一个字符表示,如‘\t’就是一个常用的转义字符。
4. ( )%是模运算,也就是求余数运算,它要求两侧均为整型数据,不能是浮点数。
5. ( )复合语句由大括号{}括起来的一条或多条语句构成,复合语句不允许嵌套使用。
6. ( )do-while语句至少能够执行一次循环语句。
7. ( )continue只能用于循环语句,而break既可应用于循环语句,还可应用于switch语句。
8. ( )C语言对数组下标的越界进行检测。
9. ( )全局变量的有效范围是从定义位置开始到本源程序结束。
10.( )变量的指针,其含义是指该变量的值。
四、程序填空题(共20分):
1. 从键盘输入一个3位整数,请输出该数的逆序数。例如输入123,输出321。
#include “stdio.h”
void main( )
{
int a,b,c,x,y;
printf(“请输入一个4位的正整数:\n”);
scanf(“%d”,&x);
a=x/100;
① //计算十位数赋值b
c=x-a*100-b*10;
y=c*100+b*10+a;
printf(“%d:%d\n”,x,y);
}
2. 判断某一字符串是不是“回文数”,回文数是从左至右或从右至左读起来都是一样的字符串。
#include “stdio.h”
#include “string.h”
#define N 40
void main( )
{
char str[N],ch=‘Y’;
int i,len;
printf(“Please input a string:\n”);
② //用scanf函数输入一个字符串
len=strlen(str);
for(i=0;i<len/2;i++)
if(str[i]!=str[len-1-i])
{
ch=‘N’;
break;
}
③ //if语句
printf(“%s是一个回文数\n”,str);
else
printf(“%s不是一个回文数\n”,str);
}
3. 编写一个函数,实现给定某年某月某日,将其转换成这一年的第几天并输出。
#include <stdio.h>
int tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
void main( )
{
int day_year(int y,int m,int d);
int year,month,day;
printf("请输入年月日:\n");
scanf("%d%d%d",&year,&month,&day);
printf("是这年的第%d天\n",day_year(year,month,day));
}
int day_year(int y,int m,int d)
{
int i,s=0;
for(i=1;i<m;i++)
④ //计算前m-1个月有多少天
if((y%4==0&&y%100!=0||y%400==0)&&m>=3)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论