C练习题_14

一、单项选择题(本大题共 20小题,每小题 2分,共 40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)

  1. 以下叙述不正确的是()

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

  1. 达式5>3>1 值是( )。

A.0
B.1
C.3
D.表达式语法错误

6.设a为整型变量,不能正确表达数学关系:10

A.10 B.a1illa12 ll a13 Il a14
C. a>10 && a<15
D. !(a<=10) &&!(a>=15)

7.定义int score = 75;则表达式 80 < score < 90 的值是()

A.1
B.0
C. true
D. false

8.下列运算符优先级最高的是()。

A.=
B.%
C.&&
D.<=

9.假设有变量定义如下int a,k;则以下哪条语句不能确保将变量k的值变为

A.k=a±a+1;
B.kk:
C. k = k >> 16;
D. k=k &-k;

10.字符串"\128"ABC"\"的长度是()

A.1
B.8
C.5
D.3

  1. 下列程序段的输出结果是()
    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

12.设i,x都是int类型,则下面的for循环体可执行多少次(for (i=0, x=0;i<= 9 && x!= 876; i++))。printf(“*”);

A.9次
B.10次
C. 876次
D.无限循环

13.若有定义语句:int a[3][6];,按在内存中的存放顺序,a数组的第10个元素是()。

A. a[0][4]
B. a[1][3]
C. a[0][3]
D.a[1][4]

14,若有定义:int a[2][3];以下选项中对数组元素正确引用的是()

A. a[2][0]
B.a[2][3]
C. a [0][3]
D. a[1>2][1]

15,下面程序段运行时输出结果是()char s[18]= “a book! “;printf(”%.4s”,s);

A. a book!
B. a book!
C. a bo
D.格式描述不正确,没有确定输出

  1. 以下叙述中不正确的是()。

A.在不同的函数中可以使用相同名字的变量
B.函数中的形式参数是局部变量
C.在一个函数内定义的变量只在本函数范围内有效
D.在一个函数内的复合语句中定义的变量在本函数范围内有效

17,对函数形参的说明有错误的是()。

A. int a(int x],int n)
B. int a(int *x,int n)
C. int a(int x]], n)
D. int a(int x,int n)

  1. 下列语句定义 x 为指向 int 类型变量 a 的指针,正确的是()

A. int a, *x= a;
B. int a, *x= &a;
C. int *x= &a, a;
D. int a, x= a;

19.若有以下宏定义:
#define N 2
#define Y(n) ((N+1)n)则执行语句“z=2(N+Y(5));”后的结果是()

A.语句有错误
B.z=34
C. z=70
D.z 无定值

20.若有以下语句,则下面表达式的值为1002的是()
struct student
{ int age;
int num;};
struct student stu(3)=((1001,20),(1002,19),(1003,2));
struct student *p;
p=stu;

A. (p++)->num
B. (p++)->age
C. (p).num
D.(
++p).age

二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结构填写在答题纸的相应位置上。
1_______

#include 

#define MOD(a, b) a % b

void main() {
    int x = 4, y = 15, z;
    z = MOD(y, x + 2);
    printf("%d\n", z++);
}

}

2__________

#include 
int func(int a, int b) {return (a +b);) 
void main()int x=2, y =5, z=8,r, r = func (func (x, y), z); printf ("%d\n", r);

3_________

#include 

union memb {
    float v;
    int n;
    char c;
};

int main() {
    union memb tag, Sval;
    tag.n = 37;
    Sval = tag;

    printf("The value of Sval is: %d\n", Sval.n);

    return 0;
}

4__________

#include 

void fun(int *s, int nl, int n2) {
    int i, j, t;
    i = nl;
    j = n2;

    while (i < j) {
        t = *(s + i);
        *(s + i) = *(s + j);
        *(s + j) = t;
        i++;
        j--;
    }
}

int main() {
    int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
    int i, *p = a;

    fun(p, 0, 2);
    fun(p, 5, 9);
    fun(p, 0, 9);

    for (i = 0; i < 10; i++) {
        printf("%d ", *(a + i));
    }

    printf("\n");

    return 0;
}

5________

#include 
int main()
{

char str[80];
scanf("%s",str);
printf("%s",str);
 return 0;
 }
 //abcd12345 xyz

三、程序填空题(共40分。请将答案填写在答题纸的相应位置上。)

1,程序功能:输出所给的一些字符串中最小的字符串。

#include 
#include 
int main(){
char "all={"bag","good"."This","are","Zoo","park"); char*min;
int i;
min=______________;
for(i=1;i<6;i++)
if(stremp(__________)<0) min=a[i};
printf("%\n",_______); 
return 0;

}

2,输入一个正整数n,再输入n个学生的姓名和百分制成绩,将其转换为两级制成绩后输出。要求定义和调用函数setgrade(stu, n),其功能是根据结构数组stu中存放的学生的百分制成绩score,将其转换为两级制成绩,并赋给grade。百分制成绩到两级制成绩的转换规则:大于或等于60分为P,否则为F。

#include
#define MAXN 100
struct student{
char name[20];
int score;
char grade;
};
void set_grade( struct student *p, int n);
 int main(){
 int i, n;
 struct student stu[MAXN];
 scanf("%d", &n);
 for(i = 0; i<n; i++){
 scanf("%s%d",stu[i].name,&stuli].score);
 }
 set_grade(stu, n);
 for(i= 0; i<n; i++)
 printf("%s %cln", stuli].name, stu[i].grade); return 0;
 }
 void set_grade(struct student *p, int n)
 {
 struct student *q = p + n - 1;
 while(_______){
 	if(________)___________;
 	else__________;
 	p++;
 	}
 }
 	

四、编程题(本大题共3小题,每小题15分,共45分。请在答题纸的相应位置上作答。)
1.编写程序读入N个学生的百分制成绩,统计等级制成绩的分布(即各等级的人数)。百分制成绩到等级制成绩的转换规则:大于等于 90分为 A;小于90且大于等于80为B;小于80且大于等于70为C;小于 70 且大于等于60为D;小于60为E。

  1. 编写程序,输出空心菱形。
    C练习题_14_第1张图片
    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;

你可能感兴趣的:(2模拟0_C,c语言,linux,服务器,河北专升本)