计算机科学-第9周 数组、结构体、指针综合练习 题目及参考解答

简介: 《计算机科学》课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597发现第9周的题目及参考没有公布,补上。1、阅读程序阅读下面的程序,写出运行结果,上机时运行程序,记录结果,从而能够理解指针的用法(1)#include<stdio.h>int main(){ char a[]="Hello Wo

《计算机科学》课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597


发现第9周的题目及参考没有公布,补上。

1、阅读程序
阅读下面的程序,写出运行结果,上机时运行程序,记录结果,从而能够理解指针的用法
(1)

#include<stdio.h>
int main(){
    char a[]="Hello World",*p;
    int i;
    i=8;
    p=a+i;
    printf("%s\n",p-2);
    return 0;
}
你认为运行结果为:_________________
实际运行的结果为:_________________

(2)

#include<stdio.h>
int main(){
    char *s="12134211";
    int v[4]= {0,0,0,0},k,i;
    for(k=0; s[k]!='\0'; k++){
        switch(s[k])
        {
        case '1':
            i=0;
            break;
        case '2':
            i=1;
            break;
        case '3':
            i=2;
            break;
        case '4':
            i=3;
            break;
        }
        v[i]++;
    }
    for(k=0; k<4; k++)
        printf("%d ",v[k]);
    return 0;
}
你认为运行结果为:_________________
实际运行的结果为:_________________

(3)

#include<stdio.h>
int main(){
    char c;
    c=getchar();
    while(c!='?'){
        putchar(c);
        c=getchar();
    }
    return 0;
}
如果从键盘输入abcde?fgh(回车)
你认为运行结果为:_________________
实际运行的结果为:_________________

(4)

#include<stdio.h>
int main(){
    int i,a[10];
    for(i=9; i>=0; i--)
        a[i]=10-i;
    printf("%d%d%d",a[2],a[5],a[8]);
    return 0;
}
你认为运行结果为:_________________
实际运行的结果为:_________________

(5)

#include<stdio.h>
int main(){
    int i,k,a[10],p[3];
    k=5;
    for(i=0; i<10; i++)
        a[i]=i;
    for(i=0; i<3; i++)
        p[i]=a[i*(i+1)];
    for(i=0; i<3; i++)
        k+=p[i]*2;
    printf("%d\n",k);
    return 0;
}
你认为运行结果为:_________________
实际运行的结果为:_________________

(6)

#include <stdio.h>
struct abc
{
    int a,b,c;
};
int main(){
   struct abc s[2]={{1,2,3},{4,5,6}};
   int t;
   t=s[0].a+s[1].b;
   printf("%d \n",t);
   return 0;
}
你认为运行结果为:_________________
实际运行的结果为:_________________

2、程序设计
#include <stdio.h>
int main()
{
    char s[80];
    int n;
    gets(s);
    //下面写出代码,求输入的字符串s的长度n


    printf("len=%d",n);
    return 0;
}
请完成两个版本的程序:
(1)直接用字符串处理函数str???()处理;
(2)不能使用字符串处理函数,而是逐个“扫描”字符数组中的字符完成统计。

参考解答:
(1)直接用字符串处理函数str???()处理;

#include <string.h>
int main()
{
    char s[80];
    int n;
    gets(s);
    //下面写出代码,求输入的字符串s的长度
    n=strlen(s);
    printf("len=%d",n);
    return 0;
}

(2)不能使用字符串处理函数,而是逐个“扫描”字符数组中的字符完成统计。
#include <stdio.h>
#include <string.h>
int main()
{
    char s[80];
    int n;
    gets(s);
    //下面写出代码,求输入的字符串s的长度
    n=0;
    int i;
    for(i=0;s[i]!='\0';i++)
        n++;
    printf("len=%d",n);
    return 0;
}

3、程序设计
  下面的程序框架将从键盘上输入5名学生的信息,保存到结构体数组中,然后输出两门课都及格了的同学的学号和姓名。请补充完整程序。作为解决方案,在结构体中,用字符数组表示学号和姓名(设学号和姓名中间不出现空格)
#include <stdio.h>
struct Student{
    char num[13];  //12位学号,连同字符串后\0,共13位
    char name[10]; //汉字占2字节,中文名不超过4个汉字
    int c;    //C语言课成绩
    int law;  //法律课成绩
};
int main( )
{
    struct Student stu[5];//定义结构体数组
    //写出代码,从键盘上将5名学生的信息读入到结构体数组stu中


    //写出代码,输出两门功课都及格了的同学的信息学号、姓名
 
    return 0;
}

参考解答:

#include <stdio.h>
struct Student
{
    char num[13];  //12位学号,连同字符串后\0,共13位
    char name[10]; //汉字占2字节,中文名不超过4个汉字
    int c;    //C语言课成绩
    int law;  //法律课成绩
};
int main( )
{
    int i;
    //定义结构体数组
    struct Student stu[5];
    //写出代码,从键盘上将5名学生的信息读入到结构体数组stu中
    for(i=0; i<5; i++)
    {
        scanf("%s%s%d%d",stu[i].num,stu[i].name,&stu[i].c,&stu[i].law);
    }
    //写出代码,输出两门功课都及格了的同学的信息学号、姓名
    for(i=0; i<5; i++)
    {
        if(stu[i].c>=60 && stu[i].law>=60)
            printf("%s%s\n",stu[i].num,stu[i].name);
    }
    return 0;
}





目录
相关文章
|
17天前
使用指针访问数组元素
【10月更文挑战第30天】使用指针访问数组元素。
30 3
|
16天前
使用指针访问数组元素
【10月更文挑战第31天】使用指针访问数组元素。
29 2
|
25天前
|
算法 索引
单链表题+数组题(快慢指针和左右指针)
单链表题+数组题(快慢指针和左右指针)
29 1
|
1月前
|
存储
如何使用指针数组来实现动态二维数组
指针数组可以用来实现动态二维数组。首先,定义一个指向指针的指针变量,并使用 `malloc` 为它分配内存,然后为每个子数组分配内存。通过这种方式,可以灵活地创建和管理不同大小的二维数组。
|
1月前
|
存储
如何通过指针数组来实现二维数组?
介绍了二维数组和指针数组的概念及其区别,详细讲解了如何使用指针数组模拟二维数组,包括定义与分配内存、访问和赋值元素、以及正确释放内存的步骤,适用于需要动态处理二维数据的场景。
|
1月前
|
存储 算法 C语言
C语言:什么是指针数组,它有什么用
指针数组是C语言中一种特殊的数据结构,每个元素都是一个指针。它用于存储多个内存地址,方便对多个变量或数组进行操作,常用于字符串处理、动态内存分配等场景。
|
1月前
魔法指针 之 二级指针 指针数组
魔法指针 之 二级指针 指针数组
19 1
|
1月前
|
存储
一篇文章了解区分指针数组,数组指针,函数指针,链表。
一篇文章了解区分指针数组,数组指针,函数指针,链表。
18 0
|
1月前
|
编译器 C语言
【C语言】指针篇-深入探索数组名和指针数组- 必读指南(2/5)
【C语言】指针篇-深入探索数组名和指针数组- 必读指南(2/5)