一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)
A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B.数组名代表的是数组所占存储区的首地址,其值不可改变
C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
D.可以通过赋初值的方式确定数组元素的个数
2,在C程序中,若函数没有返回值,则定义函数函数时需定义函数类型为
A. int
B. double
C. void
D. char
A.在C程序中,语句之间必须要用分号";"分隔
B.若a是实型变量,
C程序中a=10是正确的,因为实型变量中允许存放整型数C.在C程序中,无论是整数还是实数都能正确无误地表示
D.在C程序中,%是只能用于整数运算的运算符
4·若有定义: intx;要将x强制转换为双精度型,应该写成()
A. x(double)
B. x(double)
C. (double)x
D. double(x)
A. 整型常量
B.整型表达式
C. 整型常量或整型表达式
D.任何类型的表达式
6,若变量已正确定义,执行语句scanf("%d%d%d ",&kl,&k2,&k3);时,()是正确的输入。
A. 2030,40
B. 2030 40
C. 20, 3040
D. 20,30,40
A. 1
B. 123
C. 012
D. 1234
9.已知:charc=‘A’;int i=1;j执行语句j=!c&&i++;,则i和j的值是()
A.1,1
B.1,0
C.2,1
D.2,0
10,设有如下定义: int(*ptr));则以下叙述中正确的是()
A. ptr是指向一维数组的指针变量
B. ptr是指向 int 型数据的指针变量
C. ptr 是指向函数的指针,该函数返回一个 int型数据
D. ptr是一个函数名,该函数的返回值是指向int型数据的指针
A. 00
B. 028
C. 077
D. 01
A. int add(char x[][]);
B. int add(int x;int y);
C. char add( x,y);
D.float add(int x, int y);
13,以下选项中,不能作为合法常量的是()
A. 1.234e04
B. 1.234e0.4
C. 1.234e+4
D. 1.234e0
B. if (x)
if (x> 0) y = 1;
else
if (x <0)y =-1;
else y= 0;
C. y=-1;
if (x)
if (x> 0)y =1;
else if (x=0)y=0;
else y=-1;
D. y=0;
if (x>=0)
if (x>0)y=1;
else y =-1;
15.已知字符b的ASCI码为98 ,语句printf(“%d,%c”,"b’,‘b’+1);的输出为()
A. 98,b
B. 98,c
C. 98, 99
D. 语句不合法
A. cpp
B. exe
C. obj
D. C
A.表达式
B. 标识符
C. 语句
D. 函数
18,循环体至少被执行一次的语句为()循环语句
A. for
B. while
C. do-while
D. 任一种
19.x>0 ]y=5 的相反表达式为()
A. x<=0 || y!=5
B. x<=0 && y!=5
C. x>0|| y!=5
D. x>0 && y=5
A. char a[20]=“abcdefg”;
B. char a=“x+y=55,”;
C. char a[15]={‘1’,‘2’}:
D. char a[10]=‘5’;
二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结果填写在答题纸的相应位置上。
#include
#define N 5
void main() {
int i, p = 1, s = 0;
printf("%5s%5s%5s\n", "i", "p", "s");
for (i = 1; i <= N; i++) {
p *= i;
s += i;
printf("%5d%5d%5d\n", i, p, s);
}
}
2_______
#include
void main() {
int x = 24, y = 88;
int i = 2, p = 1;
do {
while (x % i == 0 && y % i == 0) {
p *= i;
x /= i;
y /= i;
}
i++;
} while (x >= i && y >= i);
printf("%d\n", p * x * y);
}
3______
#include
void main() {
int a[12] = {76, 63, 54, 62, 40, 75, 80, 92, 77, 84, 44, 73};
int b[4] = {60, 70, 90, 101};
int c[4] = {0};
int i, j;
for (i = 0; i < 12; i++) {
j = 0;
while (a[i] >= b[j]) {
j++;
c[i]++;
}
}
for (i = 0; i < 4; i++)
printf("%d", c[i]);
printf("\n");
}
4________
#include
void main() {
int a = 10, b = 20;
printf("%d %d\n", a, b);
{
int b = a + 25;
printf("%d %d\n", a, b);
a *= 4;
printf("%d %d\n", a, b);
}
}
5______
#include
int main() {
int a[8] = {4, 8, 12, 16, 20, 24, 28, 32};
int *p = a;
do {
printf("%d ", *p);
p += 2;
} while (p < a + 8);
printf("\n");
return 0;
}
三、程序填空题每空5分,共35分。请将答案填写在答题纸的相应位置上。)
1程序功能用~,之间不同的3个数构成一个三位数,下面程序将统计出共有多少个这样的数语填空。
#include stdio:h
void main()
{
int ij,k,count=0;
for(i=1;i<=9;i++)
for(j=① نj<=9:j++)
if②_continue;
else for(k=0;k<=9;k++)
if(③{printf(“%d%d%d”,ij,k);count++;}
printf(“n%d”,count);
}
2.输出1-100中除了能被5整除之外的所有数。且每行输出4个数。#include
void main
{
int ij=l;
for(i=1;i<=100;i++)
{
if(i%5-0)
①
printf(“%4d”,i)
;if②
printf(“n”);j+;
}
}
3,连续输入一批学生的成绩,直到输入成绩的数量超过50或者输入成绩不是有效成绩(有效成绩为0-100),将输入的有效成绩存入数组mark中,在数组中查找并输出最高分。函数getmax(array,n):在有n个元素的一维数组array中找出并返回最大值。
#include
#define MAXNUM 50
int getmax(int array,int n)
{
int k,max;
①
for(k=1;k
}
void main()
{
int k,x;
int mark[MAXNUM);
printf(“enter marks:”);
k=0;
scanf(“%d”,&x);
whlle(②){
mark[k++]=x;
scanf(“%d”,&x);
}
if(k>0) printf(“max=%dn”,getmax(mark,k));
else printf(“No marks!\n”);
}
四、编程题(本大题共3小题,每小题15分,共45分。请在答题纸的相应位置上作答。),编写一个函数fun0,首先从键盘上输入一个4行4列的一个实数矩阵到一个二维数组a[4][4]中,接着求出主对角线上元素之和,最后返回求和结果。
2.编程,将十进制数转换成任意进制数。
3,编程,输入10个整数存入数组a,再输入一个整数x,在数组a中查找x,找到输出x在10个数中的序号,找不到则输出"no found"