C语言编程题目与答案

选择题

题目 1: 交换两个变量内容

有以下程序:

#include <stdio.h>
int main() {
    int m = 1, n = 2, *p = &m, *q = &n, *r;
    r = p; p = q; q = r;
    printf("%d,%d,%d,%d\n", m, n, *p, *q);
    return 0;
}

程序运行后的结果是 ( )。
A) 1,2,1,2
B) 2,1,1,2
C) 2,1,2,1
D) 1,2,2,1

答案: C) 2,1,2,1


题目 2: 变量 y 的值

执行以下程序后,变量 y 的值为 ( )。

#include <stdio.h>
int main() {
    int a[] = {2, 4, 6, 8, 10};
    int y = 1, x, *p;
    p = &a[1];
    for (x = 0; x < 3; x++)
        y += *(p + x);
    printf("%d\n", y);
    return 0;
}

答案: 19


编程题

题目1 :swap



#include <stdio.h>
void swap(int *a,int *b);
int main() {
int m, n;
/* Input */
scanf("%d%d", &m, &n);
/* Calculate */
swap(&m, &n);
/* Output */
printf("m=%d,n=%d\n", m, n);
return 0;
}
/* 你的代码将被嵌在这里 */
void swap(int *a,int *b){
int temp;
temp = *a;
*a = *b;
*b = temp;
}

题目 2: 计算 n 个整数的和及平均值

输入 nn <= 100 )个整数,编程计算 n 个整数的和以及平均分。要求设计一个函数:

double fun(int *a, int n, int *sum);

该函数的功能是计算由指针 a 指向的一维数组中 n 个元素的和以及平均分,该函数返回平均分,和由指针变量 sum 返回。

裁判测试程序样例:

#include <stdio.h>
double fun(int *a, int n, int *sum);
int main() {
    int score[100], n, i, sum;
    double average;
    scanf("%d", &n);
    for(i = 0; i < n; i++)
        scanf("%d", &score[i]);
    average = fun(score, n, &sum);
    printf("sum=%d\n", sum);
    printf("average=%.3lf\n", average);
    return 0;
}

输入:
输入正整数 n;输入 n 个整数。

输出:
输出 n 个整数之和以及平均分(结果保留小数点后边3位数字)。

输入输出示例:

输入:
10
1 2 3 4 5 6 7 8 9 10
输出:
sum=55
average=5.500

答案:

#include <stdio.h>

double fun(int *a, int n, int *sum);

int main() {
    int score[100], n, i, sum;
    double average;
    
    scanf("%d", &n);
    for(i = 0; i < n; i++)
        scanf("%d", &score[i]);
    
    average = fun(score, n, &sum);
    
    printf("sum=%d\n", sum);
    printf("average=%.3lf\n", average);
    
    return 0;
}
double fun(int *a, int n, int *sum) {
    int s = 0;
    int i;
    for(i = 0; i < n; i++) {
        s += a[i];
    }
    *sum = s;
    return (double)s / n;
}

题目 3: 在字符串中查找指定的字符

输入一个字符串 s,再输入一个字符 c,然后在字符串 s 中查找字符 c。如果找不到,则输出“Not found”,若找到,则输出字符串 s 中从 c 开始的所有字符。要求设计一个函数:

char *fun(char *s, char c);

该函数的功能是在 s 指向的字符串中查找字符 c。若在字符串中找到首次出现的字符 c,则返回字符串中该字符的地址,若在字符串中找不到字符 c,则返回空指针 NULL。

裁判测试程序样例:

#include <stdio.h>
#include <string.h>
char *fun(char *s, char c);
int main() {
    char str[100], c, *p;
    gets(str);
    c = getchar();
    p = fun(str, c);
    if(p == NULL)
        puts("Not found");
    else
        puts(p);
    return 0;
}

输入:
输入一个字符串 s;输入一个字符 c

输出:
输出字符串 s 中从 c 开始的所有字符。

输入输出示例:

输入:
abcdef
d
输出:
def

答案:

#include <stdio.h>
#include <string.h>

char *fun(char *s, char c) {
    while (*s) {
        if (*s == c) {
            return s;
        }
        s++;
    }
    return NULL;
}

int main() {
    char str[100], c, *p;
    
    gets(str);
    c = getchar();
    
    p = fun(str, c);
    
    if (p == NULL)
        puts("Not found");
    else
        puts(p);
    
    return 0;
}

屏幕截图_10-12-2024_142923_python123.io.jpg

最后修改:2024 年 12 月 10 日 02 : 54 PM
如果觉得我的文章对你有用,请随意赞赏