《程序设计基础2021》题目集7 题解一

目录

5-1

5-2

5-3

tips:

5-4

5-5

5-6


5-1

将给定的n个整数存入数组后,再按逆序输出数组中的元素,输出时相邻数字中间用一个空格分开,行末不得有多余空格。

#include 
#define MAXN 10
int main(){
    int i,first,n;
    int num[MAXN];
    scanf("%d", &n);
    for(i=0;i=0;i--){
        if(first==1){
            printf("%d", num[i]);
            first=0;
        }else{
            printf(" %d", num[i]);
        }
    }
    printf("\n");
    return 0;
}

5-2

从键盘输入一个4行4列的二维数组元素,求第一列元素之和。

#include
#include
int main(){
    int i,j;
    int a[4][4],sum;
    sum=0;
    for(i=0;i<4;i++)
        for(j=0;j<4;j++)
        scanf("%d",&a[i][j]);
    for(i=0;i<4;i++)
    sum+=a[i][0];
    printf("%d\n",sum);
    return 0;
}

5-3

下面这段程序是计算并打印一个二维数组(数组的数组)中值为偶数的元素之和。题目保证输入的元素均为绝对值不超过10000的整数。请填写空缺的代码。

#include
int sumEven(int (*array)[5], int row){
    int sum;
    sum=0;
    for(int i=0;i

tips:

int(*array)[5] <==>int array[][5]

5-4

以下程序的输出结果是

1 2 3 
0 5 6 
0 0 9 

请填空。程序代码如下:

#include 
int main(void){
    int i,j,a[][3]={1,2,3,4,5,6,7,8,9};
    for(i=0;i<3;i++)
        for(j=i+1;j<3;j++)
            a[j][i]=0;
    for(i=0;i<3;i++){
        for(j=0;j<3;j++)
            printf("%d ",a[i][j]);
        printf("\n");
    }
    return 0;
}

5-5

在一个字符数组中查找一个指定的字符,若数组中含有该字符则输出该字符在数组中第一次出现的位置(下标值)否则输出-1。

#include
int main(){
    char ch='a',cstr[50];
    int inum,ii,iflag=1;
    gets(cstr);
    inum=sizeof(cstr);
    for(ii=0;ii

声明:

1.我的编辑器用不了 viod main() ,代码改了一下

2.这道题答案用的不是 sizeof(cstr) ,而是 strlen(cstr) ,但 strlen() 不是C语言标准函数库里的函数,要调用得在开头声明 #include ,所以我没用 strlen() ,但是这里用 sizeof() 和直接填50没区别了,不像 strlen() 可以计算输入字符串长度,具体用哪个,大家请自行斟酌

我觉得这道题用的变量命名方法可以讲一下,我不知道叫什么,但具体方式就是在变量名前,加一个变量类型的首字母

  a->char ca;
num->int inum;
sum->double dsum;

大概就是这个意思,这样做的好处是方便后面查询变量类型,不用翻来翻去

但我不太喜欢这样,看起来变扭,如果是我,我可能会这样

  a->char c_a;
num->int i_num;
sum->double d_sum;

就是在中间加一条下划线 

5-6

请完善程序,实现以下程序功能:从键盘上输入一个18位的身份证号码,提取出年份和月份并输出。

#include 
#include 
int main(void){
    int k;
    for(k=1;k<=3;k++){ //该循环用于自动阅卷,请考生忽略
        char str1[19],str2[5],str3[3];
        //用数组str1存储身份证号码
        //str2储存出生年份
        //str3储存出生月份
    int i,j;
    gets(str1);
        //输入身份证号码
    j=0;
    for(i=6;i<=9;i++)  //取年份
        str2[j++]=str1[i];
    str2[j]='\0';
    j=0;
    for(i=10;i<=11;i++)//取月份
        str3[j++]=str1[i];
    str3[j]='\0';
    printf("出生年:%s\n",str2);
    printf("出生月:%s\n",str3);
    } //该循环用于自动阅卷,请考生忽略
    return 0;
}

你可能感兴趣的:(《程序设计基础2021》题目集,c语言)