C_10练习题

一、单项选择题(本大题共 20小题,每小题 2分,共 40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)
1,结构化程序由三种基本结构组成,三种基本结构组成的算法是()

A.可以完成任何复杂的任务
B.只能完成部分复杂的任务
C.只能完成符合结构化的任务
D.只能完成一些简单的任务

2.以下名字,不能作为C语言标识符的是()
A. hehe
B. a$b_c
C. student-2
D____

3.在计算机系统中,符号整数值一律采用()来表示和存储

A.原码
B.反码
C. 补码
D.移码

4,以下选项中,非法的字符常量是()

A. ‘t’
B. ‘\65’
C. “n”
D. ‘\t’

5.设x、y、t均为int型变量,则执行语句:x=y=3;t= ++x Il++y;后,y的值为()。

A.不定值
B.3
C.4
D.1

6.下面的程序段将输出()
int a = 5, b =-3, c;
c= a % b;
printf(“%d\n”, c);

A.1
B.-1
C.2
D.-2

7.设有如下定义:int ix=10,iy=3,iz:则语句printf(“%dn”,iz=(ix%iy,ix/iy));的输出结果是()

A.1
B.2
C.3
D.4

8.在下图中,阴影部分区域可用表达式来表示。
C_10练习题_第1张图片

A. (x<=a)&&(x>=b)&&(x<=c)
B. (x<=a)(b<=x<=c)
C. (x<=a)(x>=b)&&(x<=c)
D.(x<=a)&&(b<=x<=e)

9.若a是32位int类型变量,判断其32个2进位中末两位均为1的表达式为()

A. a&33
B.a&3
11
C.a&113
D. a&l1
11

10.如果下面程序运行结果是i=12.5j=-4.0,从键盘应输入()。
#include “stdio.h”
int main(){
float i,j;
scanf(“i=%fj=%f”,&i,&j);
printf(“i=%f.j=%n”,i);
return 0;
}

A. 12.5 -4.0
B. j=12.5 j=-4.0
C. i=12.5 j=-4
D. i=12.5,j=-4

  1. 下列程序的运行结果是()
    #include
    int main(){
    int a, b, c;
    a= 20; b= 30; c= 10;
    if (a < b)a = b;
    if (a >= b)b = c; c = a;
    printf(“a=%d, b=%d, c=%dn”, a, b, c);
    return 0;
    }

A. a=20, b=10, c=20
B. a=30, b=10, c=20
C. a=30, b=10, c=30
D.a=20,b=10,c=30。

  1. 下列叙述中正确的是()

A.do-while语句构成的循环不能用其他语句构成的循环来代替
B. do-while语句构成的循环只能用break 语句退出
C.用do-while语句构成的循环,在while后的表达式为非零时结束循环
D. 用 do-while语句构成的循环,在while后的表达式为零时结束循环

#include 

int main() {
    int p[] = {11, 13, 14, 15, 16, 17, 18};
    int i = 0, k = 0;

    while (i < 7) {
        if (p[i] % 2 != 0) {
            k = k + p[i];
        }
        i++;
    }

    printf("%d\n", k);
    return 0;
}

A. 58
B.56
C. 45
D.24

  1. 以下数组定义中错误的是()

A. int x[[3]=(0);
B. int x[2][3]=((1,2},(3,4),(5,6)};
C. int x[[3]={{1,2,3),(4,5,6)};
D. int x[2][3]={1,2,3,4,5,6};

15,以下哪一种对于str的定义不恰当,有可能使strlen(str)获得非预期的结果()。

A. char str] = “hello world!”;
B. char str[100] = “X”;
C. char str[4] =“abcd”;
D. char str6) = (65, 66, 67, 68, 69, 0);

16,在一个C源程序文件中,如要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是()

A. extern
B. register
C. auto
D. staticment

17.以下对C语言中函数的有关描述正确的是()。

A.调用函数时只能把实参的值传送给形参,形参的值不能传送给实参。
B.C函数既可以嵌套定义又可以递归调用。
C.函数必须有返回值,否则不能使用函数。
D.C程序中有调用关系的所有函数必须放在同一个源程序文件中。

18.对于以下变量定义int *p[3], a[3];,正确的赋值是()

A.p=a
B.*p=a[0]
C. p=&a[0]
D. p[0] = &a[0]

19,当定义一个结构变量时,系统分配给它的内存空间大小是()

A.各成员所需内存量的总和
B.结构中第一个成员所需内存量
C.成员中占内存量最大者所需容量
D.结构中最后一个成员所需内存量

20,以下哪个选项中的p不是指针()

A. int **p;
B. int (*p)(5);
C. int *p[6];
D. struct Stulchar
name[20];
int age;
}*p, q;

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

#include

void main() {
    int i;
    char str[] = "university";

    for(i = 0; i <= 3; i++) {
        switch(i) {
            case 0:
                printf("%c ", str[i]);
                break;
            case 1:
                printf("%cn", str[i]);
                break;
            case 2:
                printf("%s\n", str);
                break;
            default:
                printf("***");
                break;
        }
    }
}

2_______

#include 

void main() {
    int a[4][4] = {
        {1, 2, -3, -4},
        {0, -12, -13, 14},
        {-21, 23, 0, -24},
        {-31, 32, -33, 0}
    };

    int i, j, s = 0;
    for(i = 0; i < 4; i++) {
        for(j = 0; j < 4; j++) {
            if(a[i][j] < 0) 
                continue;
            if(a[i][j] == 0) 
                break;
            s += a[i][j];
        }
    }
    printf("%d\n", s);
}

3_______

#include 

void fun(int a[], int n, int k) {
    int i;
    for(i = n - 2; i >= k; i--) {
        a[i + 1] = a[i];
    }
}

int main() {
    int a[6] = {1, 2, 3, 4, 5, 6};
    int i;
    fun(a, 6, 2);
    for(i = 0; i < 6; i++) {
        printf("%d,", a[i]);
    }
    return 0;
}

4_______

#include 

void fun(char *s1, char *s2, int n) {
    int k;
    for (k = 0; k < n; k++) {
        s2[k] = (s1[k] - 'A' + 3) % 26 + 'A';
    }
    s2[n] = '\0'; // Null-terminating the string
}

void main() {
    char s1[5] = "ABCD", s2[5];
    fun(s1, s2, 4);
    puts(s2);
}

5_______

#include 

struct st {
    int x;
    int *y;
} *p;

int dt[4] = {10, 20, 30, 40};
struct st a[4] = {
    {50, &dt[0]},
    {60, &dt[1]},
    {70, &dt[2]},
    {80, &dt[3]}
};

void main() {
    p = a;
    printf("%d, ", ++p->x); // Increment x in first struct and print
    printf("%d, ", (++p)->x); // Move to next struct and print its x
    printf("%d\n", ++(*p->y)); // Increment the integer pointed by y in current struct and print
}

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

1.猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾又多吃了一个。第二天早上有将剩下的挑子吃掉一半,又多吃了一个。后每天早上都吃了前一天剩下的一半零一个。到第day(通过键盘输入)天早上想再吃时,只剩下一个挑子了。求第一天共摘了多少桃子。输入10,输.出为1534

#include 

int main() {
    int day;
    int m = 0;
    int n = 1; // 'n' is declared but not used in this snippet

    scanf("%d", &day);
    while(_______){
    m = ________--; 
    _______
    day--;
    }
    printf("%d\n", m);

    return 0;
}

  1. 程序功能:将两个字符串连接。
#include 
void main() {
		_________________________;
    char s1[100], s2[100], s[200]; 
    printf("Input string1: ");
    scanf("%s", s1); 
    printf("Input string2: ");
    scanf("%s", s2); 
    concatenate(s1, s2, s);
    printf("\nThe new string is %s\n", s);
}
void concatenate(char string1[], char string2[], char string[]) {
    int i, j;
    for (i = 0; string1[i] != '\0'; i++) {
 	  ______________________;

    for (j = 0; string2[j] != '\0'; j++) {
          ______________________;
    string[			] = '\0';
}

四、编程题(本大题共3小题,每小题15分,共45分。请在答题纸的相应位置上作答。)

1.现在90号汽油6.95元/升:93号汽油7.44元/升、97号汽油7.93元/升。为吸引顾客,某自动加油站推出了“自助服务”和“协助服务”两个服务等级,分别可得到5%和3%的折扣。编写程序,根据输入顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m-自助,e-协助),计算并输出应付款。

2.编写程序求两个给定正整数的最大公约数和最小公倍数。

3,用结构体来描述一个学生的成绩情况,内容包括:姓名,学号,C成绩和微机原理成绩。要求对一个班的30个学生的成绩进行统计处理:
(1)计算学生的平均分,并按平均分高低排出名次,打印出姓名。
(2)打印出平均分90分以上和不及格者的名字。

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