班级: 学号: 姓名: 的数为4;最后再按从1至11报数,最末一个士兵报的数为10。下面程序的主要功能是计算韩信至少有多少兵。 #include
int x = 1;
int find = 0;
for (x=1; ________; x++) {
if (x%5==1 && x%6==5 && x%7==4 && x==10) {
printf(\ ____________; } } }
3. 下面程序是计算字符串中实际字符的个数,即实现和字符串处理函数strlen相同的功能。
unsigned int MyStrlen(char str[]) {
unsigned int len = 0, i;
for (i=0; str[i]!= ; i++) {
len ; }
return len; }
六、在下面这个程序中,要求其实现的功能是对用户输入的任意整数计算其阶乘,输入小于等于-1的数时退出程序。下面给出的是一个有错误的程序,请找出其中的错误,并改正之。(10分)
#include
#define END -1;
long Factorial(int x);
main() {
int x;
36 班级: 学号: 姓名:
while (1); {
printf(\ scanf(\ if (x <= END) break else
printf(\ } }
long Factorial(int x) {
int i;
int result;
for (i=1, i<=x, i++) result *= i; }
七、编程(40分,第1和2小题各10分,第3小题20分)
1.编程计算1!+2!+3!+……+10!的值。
2. 从键盘任意输入10个不相同的整数,然后,输入要查找的数x,如果在这10个数中找到x,则打印“Found!”;如果找不到,则打印“Not found!”。
3.从键盘任意输入某班20个学生的成绩,打印最高分,并统计不及格学生的人数。
37 班级: 学号: 姓名:
C语言 试题
分数 班号 姓名 卷面总分 题号 一 二 三 四 五 六 七 说明:本试卷卷面满分为100分。总成绩将按平时实验成绩和卷面笔试成绩各自所占比例折合后累加计算。
一、 判断对错,正确的打“√”,错误的打“×”。(8分,每题1
分)
1. 指针变量和变量的指针是同一个名词不同说法。( ) 2. 在C语言中,二维数组元素是按行存放的。( ) 3. 数组不可以整体赋值。( )
4. 向函数传递参数时,实参和形参不可以重名。( ) 5. 一个数组能够存储不同类型的数据( )。
6. 指向不同类型数组的两个指针不能进行有意义的比较。( )
38 班级: 学号: 姓名: 7.
union ch {
int a[3]; float m; };
这样的一个数据类型共占用内存数为6字节。( )
8. 设有定义:char a[2][3]={1,2,3,4}; 则数组元素a[1][1]的值
为0。( )
二、 单项选择题:(10分,每题2分)
1.下列对字符串的定义中,错误的是: 。 A) char str[7] = \B) char str[] = \C) char *str = \D) char str[] {'F','O','R','T','R','A','N',0};
=
2.设有声明语句:int a=1,b=0;则执行以下语句后输出: 。
switch (a) {
case 1: switch (b) {
case 0: printf(\
case 1: printf(\ }
case 2: printf(\}
A)**0** B)**0****2** C)**0****1****2** D)有语法错误
3.在while(x)语句中的x与下面条件表达式等价的是: 。
A) x!=0 B) x==1 C) x!=1 D) x==0 4.已知
struct sk {
39 班级: 学号: 姓名:
int a; float b; }data,*p;
若有p=&data 则对data中成员a的正确引用是________。 A) (*p).data B) (*p).a C) p->data.a D) p.data.a
5.C语言中形参的缺省存储类别是: 。 A) 自动(auto) B) 静态(static)
C) 寄存器(register) D)外部(extern)
三、 写出下列程序的运行结果。(10分,每题2分)
1.
#include
int x = 8 , y = 12;
printf(\ printf(\}
运行结果是: 2.
#include
int x, y;
scanf(\ printf(\} 程序执行时从键盘输入:123456789↙ 运行结果是: 3.
40