| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5592 人关注过本帖, 5 人收藏
标题:考试大纲答案(测试版,欢迎高手公测)
只看楼主 加入收藏
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
结帖率:99.25%
收藏(5)
已结贴  问题点数:100 回复次数:33 
考试大纲答案(测试版,欢迎高手公测)
以后就由九转亲自把大纲答案统一写在这里,方便核对。

由于答案是经过整理得出来的,并非上网搜的标准答案,可能会有错漏,欢迎公测

有些比较疑惑的地方都用特别字体标注,如果有错漏,欢迎提出指正。

下面我会把答案分门别类整理,注意留了几个不同的区块代表不同的答案区,以后会陆续补充相关内容

《程序设计基础》选择题答案修改一.rar (152.77 KB)


[此贴子已经被作者于2017-1-7 21:12编辑过]

搜索更多相关主题的帖子: 考试大纲 测试版 公测 
2016-12-11 01:41
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
这是选择答案区(待整理):

下面选择题答案由九转炎天合力提供,欢迎公测(红色体的是疑难点)

1-10  BDDCB  DBBCD      
11-20  ADBBA  CAAAB   
21-30  BCDDC  CDBBC      
31-40  BBABC  BBBAA                        
41-50  CBDCC  BCBBB
51-60  BBADB  CACAA      
61-70  ACBBB  DCCBB   
71-80  ACCDC  CABBC      
81-90  BBCAA  ABDDA        
91-100  CCBCA  BBACC

经过再次效第二题选D第五题选C已更正

[此贴子已经被作者于2017-1-8 03:25编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-11 01:42
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
这是编程题区(待整理):



第一题由bjut_Allen提供(还有]zzdloveclp的,由于要避免内容重复,固只能取一个答案,下面不再重复声明


1.    温度计的温度可以用华氏和摄氏二种表示方法,用户从键盘上输入华氏数,要求把它转换成摄氏,结果保留二位小数[color=#FFFF00][/color](由于公式打印不出来,固略去)
[/color]
程序代码:
#include <stdio.h>
int main()
{
    float f,c;
    printf("输入华氏温度数:");
    scanf("%f",&f);
    c=5*(f-32)/9;
    printf("转化后的摄氏温度:");
    printf("%.2f",c);
    return 0;
}


第二题由bjut_Allen提供

2.    从键盘输入一个字符,如果是大写字母则转换为小写字母,如果是小写字母则转换为大写字母,如果是其他字符则不转换,最终将转换结果显示在屏幕上。

程序代码:
#include <stdio.h>
int main()
{
    char c;
    printf("输入一个字符:"); 
    scanf("%c",&c);
    if('a'<=c&&c<='z')
    c-=32;
    else if('A'<=c&&c<='Z')
    c+=32;
    printf("%c",c);
    return 0;
    
}


第三题由bjut_Allen提供

3.    输入3个整数a、b、c,将其按降序排序后输出。


程序代码:
#include <stdio.h>
#define NUM 3
int main()
{
    int i,j,temp;
    int num[3];
    printf("输入三个大小不等的整数:");
    for(i=0;i<NUM;i++)
    scanf("%d",&num[i]);
    for(i=0;i<NUM-1;i++)
    {
        for(j=NUM-1;j>i;j--)
        {
            if(num[j]>num[j-1]){
            temp=num[j-1];
            num[j-1]=num[j];
            num[j]=temp;
            } 
        }
    }
    for(i=0;i<NUM;i++)
    printf("%4d",num[i]);
    return 0;

 }


第四题由zzdloveclp提供

4.    已知一个圆柱体底面半径为r,高为h,体积V=π*r2*h。其中π为3.14,r和h均从键盘上获得。请编写求圆柱体体积的程序。

程序代码:
#include<stdio.h>
int main()
{
    #define pi 3.14
    float h,r,v;
    printf("请输入圆柱的高h和半径r:");
    scanf("%f,%f",&h,&r);
    v=pi*r*r*h;
    printf("圆柱的体积v为:%6.2f\n",v);
    return 0;
}


第五题由zzdloveclp提供


5.    在屏幕上显示一张如下所显示的菜单
*****MENU*****
1:morning
2:afternoon
3:night
please enter you choice:


程序代码:
*****MENU*****
1:morning
2:afternoon
3:night
please enter you choice:
操作人员根据提示进行选择,程序根据输入的时间序号现实相应的问候信息,当选择1时显示”Good morning”,选择2时 显示”Good afternoon”,选择3时显示 “Good night”,对于其他的选择显示 “Selection error!”,用SWITCH语句编程实现。
#include<stdio.h>
int main()
{
    int i;
    printf("*****MENU*****\n");
    printf("1:morning\n2:afternoon\n3:night\nplease enter your choice:");
    scanf("%d",&i);
    switch(i)
    {
        case 1:printf("Good morning\n");break;
        case 2:printf("Good afternoon\n");break;
        case 3:printf("Good night\n");break;
        default:printf("Selection error!\n");
        return 0;
    }

 } //不能连续输入,不知道怎么改



[此贴子已经被作者于2016-12-13 04:25编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-11 01:46
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
由于程序题排位过长,固这里分成五题一个版块

这里是6-10题的程序题专区

第六题由zzdloveclp提供

6.    输入一行字符,分别统计出其中的大小写英文字母、空格、数字和其它字符的个数。

程序代码:
#include<stdio.h>
int main()
{
    int da=0,xiao=0,shuzi=0,kongge=0,qita=0;
    printf("请输入一行字符!\n");
    char c;
    while((c=getchar())!='\n')
    {
        if(c>='A'&&c<='Z')
        da++;
        else if(c>='a'&&c<='z')
        xiao++;
        else if(c>='0'&&c<='9')
        shuzi++;
        else if(c==' ')
        kongge++;
        else
        qita++;
    }
    printf("大写字母=%d个\n小写字母=%d个\n数字=%d个\n空格=%d个\n其他字符=%d个\n",da,xiao,shuzi,kongge,qita);
    return 0;
}


第七题由zzdloveclp提供

7.    输出如图所示的九九乘法表。

图片附件: 游客没有浏览图片的权限,请 登录注册


程序代码:
#include<stdio.h>
int main()
{
    int i,j,s;
    for(i=1;i<10;i++)
    {
        for(j=1;j<=i;j++)
        {
            s=i*j;
            printf("%d*%d=%d  ",i,j,s);
        }
    printf("\n");
    }
    return 0;
}


由于考虑到照顾新手思维--第八题由参考答案提供

8.    有人用一百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只,请编程求出一百只鸡中公鸡、母鸡、小鸡各多少只。

程序代码:
#include<stdio.h>
int main()
{
     int x,y,z;
    for(x=1;x<=100;x++)
    for(y=1;y<=100;y++)
        for(z=1;z<=100;z++)
            if((x*5+y*3+z/3.0)==100 && (x+y+z)==100)
                printf("x=%d,y=%d,z=%d\n",x,y,z);

    return 0;
}


第九题由zzdloveclp提供

9.    实现1*2*3*…*n的操作,当阶乘值>5000时结束操作。

程序代码:
#include<stdio.h>
int main()
{
    int s=1,i=1;
    while(s<=5000)
    {
        s=s*i;
        i++;
    }
    printf("1*2*...*%d=%d\n",i,s);
    return 0;
}


//备注,不经意公测,发现答案错误……最后输出i的值应该为7~,改正:

程序代码:
#include<stdio.h>
int main()
{
    int s=1,i=1;
    while(1)
    {
        s=s*i;
        if (s>5000)
            break;

        i++;
    }
    printf("1*2*...*%d=%d\n",i,s);
    return 0;
}


第十题由zzdloveclp提供

  10.    输出100-1000之间的不能被3整除的数,并控制每行输出5个。

程序代码:
#include<stdio.h>
int main()
{
    int i,j;
    for(i=100;i<=1000;i++)
    {
        if(i%3!=0)
        printf("%-16d",i);
    }
return 0;    

 } 


//备注:每行输出5个可以采取以下代码

程序代码:
#include<stdio.h>
int main()
{
    int i,j;
    for(i=100,j=0;i<=1000;i++)
    {
        if(i%3!=0)
        {
            printf("%10d",i);
            j++;
        }
        if (j%5==4)
        {
            printf("\n");
            j=0;
        }

    }
    return 0;    

 } 


[此贴子已经被作者于2016-12-13 04:46编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-11 01:47
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
这里是11-15题的程序题专区:

第十一题由zzdloveclp提供

11.    求200-400以内,所有奇数的和。

程序代码:
#include<stdio.h>
int main()
{
    int i,sum=0;

    for(i=201;i<=400;i+=2)
        sum+=i;

    printf("sum=%d\n",sum);

    return 0;
}


第十二题由zzdloveclp提供

12.    有一分数序列:1/2,2/3,3/5,5/8,8/13…… 试求前10项之和

程序代码:
#include<stdio.h>
int main()
{
    float a=2,b=1,sum=0,i,t;
    for(i=1;i<=10;i++)
    {
        sum+=a/b;
        t=a;
        a=a+b;
        b=t;
    }
    printf("前十项的和为:%f\n",sum);
    return 0;
}



第十三题由Yangfrancis提供

13.    编程输出所有"玫瑰花数"。(一个四位数等于它每一位数字的4次方之和.那么我们称这个四位数为"玫瑰花数")

程序代码:
#include<stdio.h>
#include<math.h>
int main()
{
    int thousands,hundreds,tens,ones,num;
    for(thousands=1;thousands<10;thousands++)
        for(hundreds=0;hundreds<10;hundreds++)
            for(tens=0;tens<10;tens++)
                for(ones=0;ones<10;ones++)
                    if((num=1000*thousands+100*hundreds+10*tens+ones)==pow(thousands,4)+pow(hundreds,4)+pow(tens,4)+pow(ones,4))
                        printf("%d\n",num);
    return 0;
}



第十四题由zzdloveclp提供

14.    编程求数列1+(1+2)+(1+2+3)+…+(1+2+...+10)的和并输出。

程序代码:
#include<stdio.h>
int main()
{
    int i,j;
    int static sum;//定义静态局部变量,使sum保存存储空间,不释放
    for(i=1;i<=10;i++)
       for(j=1;j<=i;j++)
       sum+=j;
       printf("数列的和为:%d\n",sum);
       return 0;
}



第十五题由zzdloveclp提供

15.    请按要求打印出下列图形,要求写出完整程序。

图片附件: 游客没有浏览图片的权限,请 登录注册


程序代码:
#include<stdio.h>
int main()
{
    char c[4][7]={{' ',' ',' ','*',' ',' ',' '},{' ',' ','*','*','*',' ',' '},{' ','*','*','*','*','*',' '},{'*','*','*','*','*','*','*'}};
    int i,j;
    for(i=0;i<4;i++)
       {
       for(j=0;j<7;j++)
       printf("%c  ",c[i][j]);
       printf("\n");
       }
       return 0;
}



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


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-11 02:26
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
这里是16-20题的程序题专区:

第十六题由Yangfrancis提供


16.    猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子又吃了一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上再吃时,只剩下一个桃子。编程求出猴子第一天共摘多少个桃子

程序代码:
#include<stdio.h>
int main()
{
    int days=10;int peaches=1;
    while(days>1)
    {
        peaches++;
        peaches*=2;
        days--;
    }
    printf("第一天:%d\n",peaches);
    return 0;
}


第十七题由neebla提供


17.    设一个三位数可以表示为abc,若其能满足条件a3+b3+c3=abc,则称其为水仙花数,编程求出所有的水仙花数。

程序代码:
#include <stdio.h>

int main() {
    int a,b,c,i,k;
    for(i=100;i<1000;i++) {
        a=i/100;
        b=(i/10)%10;
        c=i%10;
        k = pow(a,3)+pow(b,3)+pow(c,3);
        if(k == i) {
            printf("%d ",i);
        }
    }
}


18.    编程实现从键盘上输入一个四位数整数,按逆序数字输出。(如:输入1234,输出4321)

程序代码:
#include<stdio.h>
int main()
{
    char n[4];//一开始用的int,后来发现输入时要打空格,否则出错,所以改用字符型,可以连续输入
    int i;
    printf("请输入一个四位数整数:");
    for(i=0;i<4;i++)
    scanf("%c",&n[i]);
    for(i=3;i>=0;i--)
    printf("%c",n[i]);
    printf("\n");
    return 0;
}


第十九题由参考答案提供


19.    将数组a[10]逆序存放。

程序代码:
#include <stdio.h>
#define N 10
int main()
{
    int t,i,a[N]={0,1,2,3,4,5,6,7,8,9};

    for(i=0;i<N;i++)
    {
         printf("a[%d]=%-12d",i,a[i]);
         if(i%3==0)
             printf("\n");
    }

    printf("\n");

    for(i=0;i<=(N-1)/2;i++)
    {
        t=a[i];
        a[i]=a[N-1-i];
        a[N-1-i]=t;
    }

    for(i=0;i<N;i++)
    {
        printf("a[%d]=%-12d",i,a[i]);
        if(i%3==0)
            printf("\n");
    }

    printf("\n");

    return 0;
}



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


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-11 02:27
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
这里是21-25题的程序题专区:

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-11 02:34
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
这里是26-30题的程序题专区:

第二十七题由Yangfrancis提供


27.    请编写函数fun, 函数的功能是: 删去一维数组中所有相同的数, 使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如, 一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10。

程序代码:
#include<stdio.h>
int fun(int*num,int len)
{
    int i;int index;int x;
    for(i=0;i<len-1;i++)
    {
        x=1;
        while(num[i]==num[i+x]) x++;
        if(x==1) continue;
        for(index=i;index<=len-x;index++)
            num[index]=num[index+x-1];
        len-=(x-1);
    }
    return len;
}
int main()
{
    int idx;int arr[10]={2,2,4,4,4,7,8,10,10,13};
    int length=fun(arr,10);
    for(idx=0;idx<length;idx++)
        printf("%d,",arr[idx]);
    return 0;
}


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


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-11 02:35
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
这里是31-32题的程序题专区:

第三十题由 neebla 提供

30:  请编写函数fun,函数的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。
程序代码:
int main()
{
    int t[10], i;
    for (i = 0; i<10; i++) {
        scanf("%d", &t[i]);
    }
    fun(t);
    for (i = 0; i<10; i++) {
        printf("%d ", t[i]);
    }

}


第三十二题由zzdloveclp 提供

32.    编写一个函数,实现计算并返回一个整数的平方(或立方)。

程序代码:
#include<stdio.h>
int main()
{
    int pingfang_(int x);
    int lifang_(int y);
    int a;
    printf("请输入a的值:");
    scanf("%d",&a);
    printf("a*a=%d,a*a*a=%d\n",pingfang_(a),lifang_(a));
    return 0;
}
int pingfang_(int x)
{
    return(x*x); 
}
int lifang_(int y)
{
    return(y*y*y);
}




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


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-11 02:35
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:34 
该学学理论了。谢谢版主提供资源。
2016-12-11 11:50
快速回复:考试大纲答案(测试版,欢迎高手公测)
数据加载中...
 
   



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

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