一、单项选择题(本大题共 20小题,每小题 2分,共 40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
2.以下C语言用户标示符中,不合法的是()
A._1
B. Aa
Bc
C. a_b
D. a-b
3.编写好的 C 程序一般需要经过编译、连接、调试等步骤后才能运行成功。连接后产生的文件的后缀名一般是()
A…c
B…obj
C…exe
D…h
4,下面4个选项均是合法整型常量的选项是()
A. 160 xf 011
B. Oxcdf 018 Oxel
C. 123 2.le+8 3.14
D. -0x88g 2e5 32467
A.0
B.1
C.3
D.表达式语法错误
6.设a为整型变量,不能正确表达数学关系:10
A.10 B.a1illa12 ll a13 Il a14 7.定义int score = 75;则表达式 80 < score < 90 的值是() A.1 8.下列运算符优先级最高的是()。 A.= 9.假设有变量定义如下int a,k;则以下哪条语句不能确保将变量k的值变为 A.k=a±a+1; 10.字符串"\128"ABC"\"的长度是() A.1 12.设i,x都是int类型,则下面的for循环体可执行多少次(for (i=0, x=0;i<= 9 && x!= 876; i++))。printf(“*”); A.9次 13.若有定义语句:int a[3][6];,按在内存中的存放顺序,a数组的第10个元素是()。 A. a[0][4] 14,若有定义:int a[2][3];以下选项中对数组元素正确引用的是() A. a[2][0] 15,下面程序段运行时输出结果是()char s[18]= “a book! “;printf(”%.4s”,s); A. a book! A.在不同的函数中可以使用相同名字的变量 17,对函数形参的说明有错误的是()。 A. int a(int x],int n) A. int a, *x= a; 19.若有以下宏定义: A.语句有错误 20.若有以下语句,则下面表达式的值为1002的是() A. (p++)->num 二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结构填写在答题纸的相应位置上。 2__________ 3_________ 4__________ 5________ 三、程序填空题(共40分。请将答案填写在答题纸的相应位置上。) 1,程序功能:输出所给的一些字符串中最小的字符串。 2,输入一个正整数n,再输入n个学生的姓名和百分制成绩,将其转换为两级制成绩后输出。要求定义和调用函数setgrade(stu, n),其功能是根据结构数组stu中存放的学生的百分制成绩score,将其转换为两级制成绩,并赋给grade。百分制成绩到两级制成绩的转换规则:大于或等于60分为P,否则为F。 四、编程题(本大题共3小题,每小题15分,共45分。请在答题纸的相应位置上作答。)
C. a>10 && a<15
D. !(a<=10) &&!(a>=15)
B.0
C. true
D. false
B.%
C.&&
D.<=
B.kk:
C. k = k >> 16;
D. k=k &-k;
B.8
C.5
D.3
int main()
{
int x = 1, a = 0, b = 0;
switch(x){
case 0: b++;case 1: a++;
case 2: a++; b++;
}
printf(“a=%d,b=%dln”,a,b);
return 0;
}
A.a=2,b=1
B.a=1,b=1
C. a=1,b=0
D. a=2,b=2
B.10次
C. 876次
D.无限循环
B. a[1][3]
C. a[0][3]
D.a[1][4]
B.a[2][3]
C. a [0][3]
D. a[1>2][1]
B. a book!
C. a bo
D.格式描述不正确,没有确定输出
B.函数中的形式参数是局部变量
C.在一个函数内定义的变量只在本函数范围内有效
D.在一个函数内的复合语句中定义的变量在本函数范围内有效
B. int a(int *x,int n)
C. int a(int x]], n)
D. int a(int x,int n)
B. int a, *x= &a;
C. int *x= &a, a;
D. int a, x= a;
#define N 2
#define Y(n) ((N+1)n)则执行语句“z=2(N+Y(5));”后的结果是()
B.z=34
C. z=70
D.z 无定值
struct student
{ int age;
int num;};
struct student stu(3)=((1001,20),(1002,19),(1003,2));
struct student *p;
p=stu;
B. (p++)->age
C. (p).num
D.(++p).age
1_______#include
#include
#include
#include
#include
#include
#include
1.编写程序读入N个学生的百分制成绩,统计等级制成绩的分布(即各等级的人数)。百分制成绩到等级制成绩的转换规则:大于等于 90分为 A;小于90且大于等于80为B;小于80且大于等于70为C;小于 70 且大于等于60为D;小于60为E。
3.红星商场新进商品若干,请帮助他们进行统计。下面给出了main)函数,请将其他函数补充完整,即写出 void readprice(float price[8]); float averPrice(float price[8]): float highPrice(float price8)float lowePrice(float price[8]; void prtprice(float price[8].foat ave);函数的定义。
#include
void readprice(float price[8); /输入商品的价格/
float averPrice(float price[8); /计算商品的平均价格/float highPrice(float price[8]找出最高价的商品/foat lowePrice(float price[8)找出最低价的商品/void prtprice(float price[8].foat ave)输出高于平均价格的商品/
int main){
float price[8]:
float average,highestP,lowestP;readprice(price): /输入商品的价格/
average=averPrice(price); /计算商品的平均价格/highestP=highPrice(price); /找出最高价的商品/lowestP=lowePrice(price); /找出最低价的商品/printf(“The highest Price=%6.20n”,highestP); printf(“the lowest Price=%6.20n”,lowestP); printf(“The average Price=%6.2fn”,average);
prtprice(price,average); /输出高于平均价格的商品/
return 0;