C_8练习题

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

1,在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()

A. main

B. MAIN

C.name

D. function

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

A. C语言中, main函数必须位于文件开头

B.C 语言每行中只能写一条语句

C. C语言本身没有输入、输出语句

D.对一个C语言进行编译预处理时,可检查宏定义的语法错误

3,设有定义: inta=5,b; ,则下列表达式中值不为2的是()

A. b=a/2

B. b=a%2

C. b-6-(-a)

D. b=a>3?2:4

4,在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为()语句

A. for

B. if

C. do

D. while

5,在下面的do-while循环语句中,其循环体语句被执行的次数为()int i=0; do i++; while(i<10);

A. 0

B. 9

C. 10

D. 11

6,将两个字符串连接起来组成一个字符串时,选用的函数为()

A. strlen()

B. strcpy()

C. strcat()

D. stremp()

  1. 若用数组名作为函数调用的实参,传递给形参的是()

A. 数组的首地址

B. 数组中第一个元素的值

C. 数组中全部元素的值

D. 数组元素的个数

  1. 以下程序的输出结果是()

#include <stdio.h>

void main()

{

int i,x[3][3]={1,2,3,4,5,6,7,8,9};

for(i=0;i<3;i++)

printf("%d ",x[i][2-i]);,

}

A.1 4 7

B.3 5 7

C.1 5 9

D.3 6 9

9.假定s被定义为指针类型char*的变量,初始指向的字符串为"Hello world!",若要使变量p指向s所指向的宝符串,则p应定义为()

A. chárp=s;

B. char*p=&s;

C. char *pp=s:
D. char
p: p=&s;

10,设x和y均为逻辑假,则xly为假的条件是(.),

A:-它们购为其

B. 其中一个为真

C.它们均为假

D. 其中一个为假

  1. 若有定义:inta=1,b=10;,执行下列程序段后.b 的值是(
    do{ba; a++;}while(b-<0);

A.-1

B. -2

C. 8

D.9

12,设cl、c2均是char类型变量,则不正确的函数调用为()

A. scanf("%c,%c",&c1,&c2)

B. getchar(cl)

C. putchar(c2)

D. putchar(cl)

13.若定义了函数 double *function0.则返回值类型为()

A. 实数型

B. 实数指针型

C. 函数指针型

D.数组型

  1. C语言结构体类型变量在程序执行期间()

A.所有成员一直驻留在内存中

B. 只有一个成员驻留在内存中

C. 部分成员驻留在在内存中

D. 没有成员驻留在内存中

15.预处理命令在程序中都是以()符号开头的

A.*

B. #

C. &

D.@

16.下面各语句行中、不能正确进行字符串赋值操作的语句是()

A. char ST[5]={"ABCDE"):

B. char S[6]={'A', 'B', 'C', 'D', '

C. char *S; S="ABCDE";

D. char c[80],*S=c; scanf ("%st, S):

17,下列给字符数组赋初值时,正确的是()

A. char s1="abcdef";

B. char s2[4]="abcd";

C. char s3[2][3]={"abc","xyz");

D. char s4[4]]={'a,x','s',t);

  1. 设有以下语句typedef struct S{ intg; char h;} T;则下面叙述中正确的是()

A. 可用 S 定义结构体变量

B. 可以用T定义结构体变量

C. s 是 struct类型的变量

D. T是 struct s类型的变量

19,要使p指向二维整型数组a[10][20], p应定义为()

A. int*p-a;

B. int**p-a;

C. int *p[20]=a;

D. int (*p)[20]=a;

20,凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()

A. 自动(auto)

B. 静态(static)

C.外部(extern)

D.寄存器(register)

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

1________

c 复制代码
#include<stdio.h>

int main() {
    int a[9] = {21, 25, 56, 24, 39, 62, 18, 87, 64};
    int i, b1, b2;

    a[0] <= a[1] ? (b1 = a[0], b2 = a[1]) : (b1 = a[1], b2 = a[0]);

    for (i = 2; i < 9; i++) {
        if (a[i] < b1) {
            b2 = b1;
            b1 = a[i];
        } else if (a[i] < b2) {
            b2 = a[i];
        }
    }

    printf("%d %d\n", b1, b2);

    return 0;
}

2_________

c 复制代码
#include <stdio.h>

int acc(int n) {
    static int f;
    f = f + n;
    return f;
}

int main() {
    int i;

    for (i = 1; i <= 5; i++) {
        printf("%d ", acc(i));
    }

    return 0;
}

3________

c 复制代码
#include <stdio.h>

void SelectSort(int a[], int n) {
    int i, j, k, x;
    for (i = 0; i < n - 1; i++) {
        k = i;
        for (j = i + 1; j < n; j++) {
            if (a[j] < a[k]) {
                k = j;
            }
        }
        x = a[i];
        a[i] = a[k];
        a[k] = x;
    }
}

int main() {
    int i;
    int a[6] = {20, 12, 22, 10, 56, 28};

    SelectSort(a, 6);

    for (i = 0; i < 6; i++) {
        printf("%d ", a[i]);
    }

    printf("\n");

    return 0;
}

4____________

c 复制代码
#include <stdio.h>

void LE(int* a, int* b) {
    int x = *a;
    *a = *b;
    *b = x;
}

int main() {
    int x = 15, y = 26;

    printf("%d %d\n", x, y);
    LE(&x, &y);
    printf("%d %d\n", x, y);

    return 0;
}

5__________

c 复制代码
#include <stdio.h>
#include <string.h>

struct Worker {
    char name[15];  // 姓名
    int age;        // 年龄
    float pay;      // 工资
};

int Equal(struct Worker* r1, struct Worker* r2) {
    return strcmp(r1->name, r2->name) == 0;
}

int main() {
    struct Worker a[4] = {
        {"abe", 25, 420},
        {"defa", 58, 638},
        {"ghin", 49, 560},
        {"jklt", 36, 375}
    };

    struct Worker x = {"defa", 0, 0};  // 初始化 x 结构体

    int i;
    for (i = 0; i < 4; i++) {
        if (Equal(a + i, &x)) {
            break;
        }
    }

    if (i == 4) {
        printf("没有查找到所需的记录!\n");
    } else {
        printf("%s %d %6.2f\n", a[i].name, a[i].age, a[i].pay);
    }

    return 0;
}

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

1.程序功能:输入一个4行4列的矩阵,计算并输出矩阵除四边以外的所有元素之和suml再计算和输出该矩阵主对角线以上(含对角线)的所有元素之和sum2运行示例:

c 复制代码
#include <stdio.h>

int main() {
    int j, k, sum1 = 0, sum2 = 0;
    int a[4][4];

    printf("Enter an array:\n");

    for (j = 0; j < 4; j++) {
        for (k = 0; k < 4; k++) {
            scanf("%d", &a[j][k]);
        }
    }

    sum1 = 0;
    for (j = 0; j < 4; j++) {
        for (___________) {
            sum1 += a[j][k];
        }
    }
    printf("sum1 = %d\n", sum1);

    ________;
    for (j = 0; j < 4; j++) {
        for (___________) {
            sum2 += a[j][k];
        }
    }
    printf("sum2 = %d\n", sum2);

    return 0;
}
  1. 函数功能:实现两个字符串的比较。即自己写一个strcmp 函数:compare(sl,s2)。如果 sl=s2,返回值为 0,如果 slts2,返回它们二者第一个不同字符的 ASCI码差值("BOY"与"BAD",第二个字母不同, "O"与"A"之差为 79-65=14)。如果s1>s2,则 输出正值,如s1<s2,则输出负值。
c 复制代码
#include <stdio.h>

int compare(char *p1, char *p2) {
    while (*p1++ == *p2++) {
        if (__________) {
            return __________;
  
}

int main() {
    int m;
    char str1[20], str2[20], *p1, *p2;

    printf("Please input strings one by one:\n");
    scanf("%s", str1);
    scanf("%s", str2);

    p1 = str1;
    p2 = str2;

    m = compare(p1, p2);

    printf("The result is: %d\n", m);

    return 0;
}

3.下面程序的功能是输出所给多个字符串中最大的字符串,请填空。

c 复制代码
#include <stdio.h>
#include <string.h>

int main() {
    char a[6][10] = {"bag", "good", "This", "are", "Zoo", "park"};
    ________;
    int i;

    max = a[0];

    for (i = 1; i < 6; i++) {
        if (strcmp(a[i], max) < 0) {
            max = a[i];
        }
    }

    printf("The min string is %s\n", max);

    return 0;
}

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

1.编程从键盘输入某年某月,输出该年的该月拥有的天数。

2.编程:从字符串中删除指定的字符,同一字符的大小写按不同字符处理果

  1. 编写程序,根据以下公式求x的近似值,要求累加到某项小于 le-6时为止。
相关推荐
懒大王爱吃狼1 小时前
Python教程:python枚举类定义和使用
开发语言·前端·javascript·python·python基础·python编程·python书籍
秃头佛爷2 小时前
Python学习大纲总结及注意事项
开发语言·python·学习
待磨的钝刨2 小时前
【格式化查看JSON文件】coco的json文件内容都在一行如何按照json格式查看
开发语言·javascript·json
XiaoLeisj4 小时前
【JavaEE初阶 — 多线程】单例模式 & 指令重排序问题
java·开发语言·java-ee
励志成为嵌入式工程师5 小时前
c语言简单编程练习9
c语言·开发语言·算法·vim
捕鲸叉5 小时前
创建线程时传递参数给线程
开发语言·c++·算法
A charmer5 小时前
【C++】vector 类深度解析:探索动态数组的奥秘
开发语言·c++·算法
Peter_chq5 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
记录成长java7 小时前
ServletContext,Cookie,HttpSession的使用
java·开发语言·servlet
前端青山7 小时前
Node.js-增强 API 安全性和性能优化
开发语言·前端·javascript·性能优化·前端框架·node.js