c2[ ]={‘\x10’,’\x1’,’\x8’};
12.指出哪一个不是C语言的赋值语句()
A int a=1,b=3; B i++;
C a=b=5; D y=int(i);
13. 以下哪一个是无限循环的语句为()。
A for (y=0,x=0;x>=++y;x++);
B for (x=1;;x++);
C i=15; while (x>10) { x--;}
D for (i=10;i>5;i--) sum+=i;
二.写出下列程序的运行结果(每题3分,共15分)
1.#include “stdio.h”
main()
{
int i;
for (i=1;i<=5;i++)
{ if (i%2) printf(“*”);
else continue ;
printf(“#”);
}
printf(“$\n”);
}
2. main()
{
int i;
void function(void);
for (i=0;i<3;i++)
function();
}
void function(void)
{
int i=1,j=1;
static int k=1;
i++;j++;k++;
printf(“%d,%d,%d”,i,j,k);
}
3. float x=1.0,y=2.0,z;
main()
{
double fun(void);
z=fun();
printf(“%f,%f,%f\n”,x,y,z);
}
double fun(void)
{
int y,z;
x=y=z=3.0;
return(x+y+z);
}
4.main()
{
int i=1,k=0;
while (i--) k=k+k;
printf(“k=%d\n”,k);
}
5.main()
{
int i,sum;
i=1;
for(sum=1;i<=5;i++,sum--)
sum*=sum;
printf(“%d”,sum);
}
三 编程(共59分)
1.设有一个字符串“This is a computer” ,请编程求字符“i”首次出现的位置。(8分)
2. 试编程求3*3二维数组中最大元素及其所在的行、列位置。(12分)
3.编写程序,计算并输出下面级数在求和过程中第一次出现和数大于999时的奇数项部分和OS2。(其中^表示幂运算)
1*2-2*3+3*4-4*5+……+(-1)^(n-1)*n*(n+1)+ ……(13分)
4.有一张由9个学生每人8个数据组成的二维数据表。编写程序,要求将学生的总成绩按降序(由大到小)排列,计算并输出总分第二名学生的平均成绩。(13分)
姓名 学号 年龄 政治 语文 数学 计算机 体育 总分
李明 1 19 81 89 99 98 87
张力 2 16 89 90 95 80 90
王英 3 17 91 77 88 95 78
赵锐 4 18 79 84 95 93 96
周密 5 15 95 92 98 99 93
吴川 6 17 78 88 85 86 80
孙康 7 14 91 85 94 82 88
郑重 8 15 90 92 94 90 95
胡琴 9 16 75 85 87 94 90
5.已知在正文文件da1.dat中,每个记录只有两项数据,第一项为一整数表示学生的学号,第二项为形如xx.x的一个实数,试统计计算并向文件t2.dat输出60分以上(含60分)的人数占总人数的比例R。(13分)
模拟试题三
一 选择题(每题2分 共20分)
1.下面关于”A”的说法正确的是()
A 一个字符常量 B一个字符串常量
C 一个字符a D一个字符变量
2.使用字符串函数时,必须将()头文件包含在主程序中
A“stdio.h” B”string.h”
C “math.h” D”stdlib.h”
3.下面关于‘\\’的说法不正确的是()
A转义字符 B起换行作用
C能用于输出语句 D也能用于打印机
4.C程序是由()构成
A数据文件 B文本文件
C 函数 D主函数和其他函数
5.下列关于函数的说法哪些是错误的()
A可以单独执行
B可以嵌套调用
C可以定义在主函数之前或之后
D数组可以作为函数的参数
6.一般情况下,C语言是以()表示运算结果为逻辑真。
A F B T
C 1 D 0
7.以下变量名()是合法的。
A continue B $123
C lotus_2_3 D
8.一个C语言程序总是从()开始执行的。
A 主过程 B主函数
C子函数 D按书写顺序
9.PC机中,C语言的int,char,float所占用的内存为()字节。
A 1, 2, 4 B 2,2,2
C 2,1,4 D 2,2,4
10. 若k为float型,则下列程序执行结果为()
k=2.0;
while (k!=0)
{printf(“%d”,k);
k--;}
printf(“\n”);
A 无限多次 B 0次
C 1次 D 2次
二 按题目要求填空完善下列程序(每题6分,共24分)
1. 按逆序输出一个字符串
Void reversr(str)
Char str[];
{
int len.i;
char c;
len=①;
for (i=0;i<②;i++)
{ c=③;
str[i]=str[len-i-1];
④=c;
}
}
#include
main()
{
char string[256];
gets(string);
reverse(string);
puts(string);
}
2.输出Fibonacci数列的前15项,要求每行输出5项。
#define M 15
main()
{
int fib[M];
int i,
fib[0]=1;fin[1]=1;
for (i=2;i
①=fib[i-2]+②;
for(i=0;i
{ if ( ③ ) printf(“\n”);
④;
}
}
3. 用起泡法对10个按升序排序
main()
{
int a[10]={2,4,1,6,-1,34,56,78,-23,20};
int i,j,k;
for (j=0;j<① ;j++)
for (i=0; ② ;i++)
if ( ③ )
{ k=a[i];
④ ;
a[i+1]=k;
}
}
3. 输出100-200间的所有素数及其个数
main()
{
int m,k,I,n=0
for (m=101;m<=200;m++)
{ ①
for (i=2;i<=k;k++)
if ( ② ) break;
if ( ③ ) {printf(“%d “,m); n=n+1;}
}
printf(“%d”,n);
}
三 编程(共56分)
1.编写程序,求下面级数前n项中偶数项的和ES。在求和过程中,以第一个绝对值大于9999的项为末项,计算并输出和数ES。(其中^表示幂运算)
1!-2!+3!-4!+……+(-1)^(n-1)*n!+ …… (10分)
2.设计一个程序,对于从键盘输入的年、月、日,计算并输出相应是星期几。比如,1998年7月1日是星期三,要求输出形式为7—1—1998:<3>。 (12分)
[提示] 推算公式:
s=yy-1+(yy-1)/4-(yy-1)/100+(yy-1)/400+dd
w=s-7*(s/7)
其中yy是年份数,dd是yy年元旦到日期d的总天数,w是星期序数,w=0,1,2,…
3.编写程序:有两个正整数a和b,已知a*b=2048,求a、b各为何值时,a+b的值最小。(11分)
4.编写程序,找出一个4位数的完全平方数,该数减去1111后,结果仍是一个完全平方数。(完全平方数是一个整数,它是另一个整数的平方。例如25是5的平方,则25是一个完全平方数。)(10分)
5.已知在正文文件test.txt中存放有120个记录,每个记录中只有一个数。在文件中,从第一个数开始,每四个数为一组,第一个数为不同商场的代号(顺序号),其余三个数代表三类商品的营业额(万元)。编写程序,统计计算并向文件t2.dat输出各商场的总营业额
(13分)