标题:C语言考试大纲(教学材料都在大纲里面)--求大家一起合力把答案和讨论写在这里 ...
只看楼主
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
20.    编程实现从键盘输入一句话保存在数组中,统计其包含的英文字母个数并输出统计结果。

程序代码:
#include<stdio.h>
int main()
{
    char s[80];
    char *p=s;

    int count=0;

    gets(s);//其实这里并不太推荐用gets,可以用scanf("%[^\n]s%*c",s);代替输入,不过新手先用gets也未尝不可~

    for (;*p;++p)
    {
        if (*p>='a'&&*p<='z')
            count++;
        else if (*p>='A'||*p<='Z')
            count++;
    }

    printf("%d\n",count);

    return 0;
}


[此贴子已经被作者于2016-12-14 02:24编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-14 02:01
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
25.    请编写函数fun, 函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入, 规定所有单词由小写字母组成,单词之间由若干个空格隔开, 一行的开始没有空格。

程序代码:
#include<stdio.h>
int fun(char s[])
{
    char *p=s;

    int word=1;

    if (*p=='\0')
        return 0;

    for (;*p;++p)
        if (*p!=' '&&*(p+1)==' ')
            ++word;

    if (*(p-1)==' ')  
        --word;

    return (word);
}
int main()
{
    char s[80]={"\0"};

    gets(s);//其实这里并不太推荐用gets,可以用scanf("%[^\n]s%*c",s);代替输入,不过新手先用gets也未尝不可~

    printf("%d\n",fun(s));

    return 0;
}


[此贴子已经被作者于2016-12-14 02:22编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-14 02:19
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
26.    请编写函数fun,函数的功能是:统计各年龄段的人数。N个年龄在主函数中通过键盘输入并存放在age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中,其余依此类推, 把100岁 (含100)以上年龄的人数都放在d[10]中。结果在主函数中输出。

程序代码:
#include<stdio.h>
#define N 10
void fun(int a[],int d[])
{
    int *p=a;

    for (;p-a<N;++p)
    {
        if (*p>100)
            *p=100;

        ++d[*p/10];
    }
}
int main()
{
    int a[10];
    int d[11]={0};
    int *p=a;

    for (;p-a<N;++p)
        scanf("%d",p);
    
    fun(a,d);

    for (p=d;p-d<10;++p)
        printf("age:%2d-%2d %3d\n",(p-d)*10,(p-d)*10+9,*p);

    printf("age>=100  %3d\n",*p);

    return 0;

}


[此贴子已经被作者于2016-12-14 02:41编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-14 02:37
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
28.    请编写函数fun,实现功能是: 比较两个字符串,将长的那个字符串的首地址作为函数值返回。

程序代码:
#include<stdio.h>
char *fun(char s1[],char s2[])
{
    char *p1=s1;
    char *p2=s2;

    for (;*p1&&*p2;++p1,++p2);

    return (*p1?s1:s2);
}
int main()
{
    char s1[80]={"\0"};
    char s2[80]={"\0"};

    printf("%s\n",fun(gets(s1),gets(s2)));


    return 0;
}


[此贴子已经被作者于2016-12-14 03:17编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-14 02:56
a2990473483
Rank: 2
等 级:论坛游民
帖 子:20
专家分:80
注 册:2016-6-3
得分:0 
还有几个编程题目,哪位大帅哥能贡献一下结果
2016-12-14 09:18
王子的新衣
Rank: 2
等 级:论坛游民
帖 子:19
专家分:17
注 册:2016-12-14
得分:0 
苹果手机怎么打不开这个压缩文件    请问这个论坛有电脑版的吗
2016-12-14 10:04
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
回复 56楼 王子的新衣
本来就用电脑版啦~如果手机打开不了可以把那文件弄到电脑来整~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-14 10:08
neebla
Rank: 2
等 级:论坛游民
帖 子:16
专家分:29
注 册:2016-12-8
得分:3 
程序代码:
/*
23.    从键盘上输入10个整数,要求编程求出其中的最大值、最小值、平均值,并输出。
*/

#include <stdio.h>

int main() {
    int s[10];
    int i,max,min;
    int all=0;
    float ave=0;
    for(i=0;i<10;i++) {
        scanf("%d",&s[i]);
    }
    for(i=0;i<10;i++) {
        all+=s[i];
        if(s[i]>max) {
            max=s[i];
        }
        if(s[i]<min) {
            min=s[i];
        }
    }
    ave = (float)all / 10;
    printf("max = %d, min = %d, average = %.1f\n",max,min,ave);
}
2016-12-14 10:42
neebla
Rank: 2
等 级:论坛游民
帖 子:16
专家分:29
注 册:2016-12-8
得分:3 
程序代码:
/*
22.    编程实现从键盘输入一个5*5矩阵,计算其正对角线元素之和。
*/

#include <stdio.h>

int main() {
    int s[5][5];
    int i,j,all=0;
    for(i=0;i<5;i++) {
        for(j=0;j<5;j++) {
            scanf("%d",&s[i][j]);
        }
    }
    for(i=0;i<5;i++) {
        for(j=0;j<5;j++) {
            if(i==j) {
                all += s[i][j];
            }
        }
    }
    printf("all = %d\n",all);
}
2016-12-14 10:53
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
还差29~搞定这题就收工了

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-14 23:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-472217-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.922362 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved