| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1132 人关注过本帖
标题:求大侠帮忙:C语言程序设计---编程考题
只看楼主 加入收藏
kristy2015
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-8-2
收藏
 问题点数:0 回复次数:13 
求大侠帮忙:C语言程序设计---编程考题
1.    编写一个函数,函数首部为int index(char *str,char t),用来计算字符t在str中第一次出现的位置,如str为“abcc”,t为‘c’,则返回3,如果没有找到该字符,则返回-1.
2.    编写一个函数,函数首部为int split(int n,int *a,int *b),对于正整数n,将其分解为任意两个素数之和a和b,若无法分解,则返回0,若可以分解,则返回1.其中主函数如下:
Void main()
{
Int n,a,b;
Scanf(“%d”,&n);
If(split(n,&a,&b)==1)
{
Printf(“%d,%d”,a,b);
}
Else
{
Printf(“no results!”);

}
}
3.    编写一个函数,函数首部为void maxword(char *s,char *t),求出两个字符串包含的相同单词(同一字母的大小写视为不同的字符)。规定单词全部由英文字母构成,单词直接由一个或多个空格分隔。其中主函数如下:
#include <string.h>
Void main()
{
Char s[]=”This is C programming text”;
Char t[]=”This is a text for C programming”;
maxword(s,t);
}
4.    设有一个数组a包含count个数,已经按照升序排好。现要求编一函数,函数首部为int arrage(int *a,int count,int n,int m)能够把从指定位置n开始的m个数按照逆序重新排列并输出新的完整数列。若排序完成则返回1,出现错误返回0.
Void main()
{
Int i,a[10]={0,1,2,3,4,5,6,7,8,9};
Arrage(a,10,3,5);
for(i=0;i<10;i++)
    Printf(“%d”,a[i]);
}
5.    设文件student.dat中存放着一年级1000名学生的基本情况,这些情况由以下结构体来描述:
Struct student
{
Long int num;
Char name[10];
Int age;
Char sex;
Char addr[40];
};
请编写程序:
1)    在main函数中打开student.dat文件,并将所有数据按照学号排序后保存在一个student类型的数组中。
2)    编写函数,函数首部为void print(struct student *s,int m,int n),打印该数组中从学号为m到学号为n的数据
3)    编写函数,函数首部为struct student search(struct student *s,int num),利用折半查找算法查找学号num的学生,并将该学生的信息打印输出。
4)    编写函数,函数首部为void write(struct student *s),将数组写入到backup.dat文件中
2015-08-02 18:45
来生再见
Rank: 1
来 自:江西省抚州市
等 级:新手上路
威 望:1
帖 子:39
专家分:9
注 册:2015-9-13
收藏
得分:0 
回复 楼主 kristy2015
程序代码:
//可以分解返回1 不可以返回0
int split(int n,int *a,int *b){
    int flag=0;
    int i;
    for(i=2;i<=n-1;i++){
        *a=i;
        *b=n-*a;
        if(panduan_shushu(*a) && panduan_shushu(*b)){
            flag=1;
            break;
        }
    }
    return flag;

}
//判断一个数是不是素数
int panduan_shushu(int n){
    int i;
    for(i=2;i<=n-1;i++){
        if(n%i==0) break;
    }
    if(i==n) 
        return 1;//素数
    else
        return 0;//非素数
}




重新开始,努力
2015-09-23 01:22
来生再见
Rank: 1
来 自:江西省抚州市
等 级:新手上路
威 望:1
帖 子:39
专家分:9
注 册:2015-9-13
收藏
得分:0 
程序代码:


int find_position(char *str,char t){
    int index;
    int i=0;
    while(str[i]!='\0'){
        if(str[i]==t){
            index=i;
            break;
        }
        i++;
    }
    return index;
}

重新开始,努力
2015-09-23 10:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
這是伸手了

授人以渔,不授人以鱼。
2015-09-23 11:10
来生再见
Rank: 1
来 自:江西省抚州市
等 级:新手上路
威 望:1
帖 子:39
专家分:9
注 册:2015-9-13
收藏
得分:0 
回复 4楼 TonyDeng
当给自己做的的练习好了,

重新开始,努力
2015-09-23 13:48
来生再见
Rank: 1
来 自:江西省抚州市
等 级:新手上路
威 望:1
帖 子:39
专家分:9
注 册:2015-9-13
收藏
得分:0 
第三题我写了好长,把主要的函数写出来,自己看
/*
判断是不是存在指定的单词
1.前面的字符一定是空格(单词开始)
2.单词开始的时候,单词的首字符必须是和m单词的首个字符一样,
那么取出这个单词然后比较
3.找到了话,就开始比较
*/
程序代码:
int mystrstr(char *str,char *m){
    int flag=0;
    int word=1;
    int len=strlen(m);
    int i=0;
    int position;
    char buf[20];
    memset(buf,0,20);
    //循环的判断字符
    while(str[i]!='\0'){
        if(str[i]==' '){
            word=1;
        }else if(str[i]!=' ' && str[i]!=*m){
            word=0;
        }else if(str[i]==*m && word==1){
            //获取单词
            for(position=0;str[i]!=' ' && str[i]!='\0';position++,i++)
                    buf[position]=str[i];
            if(!strcmp(buf,m)){//找了就退出    
                flag=1;
                break;
            }else{//没有找到就情况数组,继续查找
                memset(buf,0,20);
                word=0;
                i--;
            }
        }
        i++;
    }
    return flag;
}


程序代码:
//获取单词,把获取的单词存入到一个动态的指针数组
char **get_word(char *str,int *count){

    char **p,**p_index,temp[20];//存放临时单词
    *count=get_count(str);
    //建立指针数组
    p_index=p=(char **)malloc(sizeof(char *)*(*count));
    memset(temp,0,20);//设置temp为0
    int i=0,j=0;
    while(str[i]!='\0'){
        
        if(str[i]!=' '){
            temp[j++]=str[i++];
        }else if(str[i]==' '){
            //建立一个动态的数组,把这个动态数组的地址存入到指针数组p
            *p=(char *)malloc(sizeof(char)*(21));
            strcpy(*p,temp);//存入到这个动态数组
            memset(temp,0,20);//清空temp
            j=0;
            p++;
            while(str[i]==' ')i++;//把多个空格遍历完
        }    
    }
    //处理最后一个单词
    int len=strlen(temp);
    if(len){
        *p=(char *)malloc(sizeof(char)*(len+1));
        strcpy(*p,temp);//存入到这个动态数组
    }
    return p_index;
}

重新开始,努力
2015-09-23 13:51
来生再见
Rank: 1
来 自:江西省抚州市
等 级:新手上路
威 望:1
帖 子:39
专家分:9
注 册:2015-9-13
收藏
得分:0 
程序代码:
//使用插入排序
int arrage(int *a,int count,int n,int m){
    int i,j,t;
    for(i=n+1;i<=m;i++){
        t=i;
        for(j=i-1;j>=n;j--){
            if(*(a+t)>*(a+j)){
                int temp=*(a+t);
                *(a+t)=*(a+j);
                *(a+j)=temp;
                t=j;
            }
        }
    }
}


重新开始,努力
2015-09-23 14:06
来生再见
Rank: 1
来 自:江西省抚州市
等 级:新手上路
威 望:1
帖 子:39
专家分:9
注 册:2015-9-13
收藏
得分:0 
最后一题太大了

重新开始,努力
2015-09-23 14:09
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
根本就不需浪費時間在前面的題目上,把最後一題做了,等於連前面的也做了,因為前面的題目本來就是為最後一題鋪墊。如果說最後一題有問題,那就肯定是綜合能力出了問題。我經常說,祗做一個課題,勝於做無數個別小題。

授人以渔,不授人以鱼。
2015-09-23 14:16
the_second
Rank: 2
等 级:论坛游民
帖 子:115
专家分:80
注 册:2015-9-13
收藏
得分:0 
#include <stdio.h>
#include <math.h>
int IsPrime(int num)
{
    int i;
    for(i=2;i<sqrt(num);i++)
    {
        if(num%i==0)
        {
            break;
        }
    }
    if(i>sqrt(num)&&num!=1)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}
int main()
{
    int n,i,j,dif;
    while(scanf("%d",&n)!=EOF)
    {
        for(i=2;IsPrime(i)&&i<n;i++)
        {
            dif=n-i;
            if(IsPrime(dif))
            {
                printf("%d+%d=%d\n",i,dif,n);
                break;
            }
            else
            {
                continue;
            }
        }
        if(i>=(n-1))
            printf("Not found\n");
    }
    return 0;
}
2015-09-23 16:43
快速回复:求大侠帮忙:C语言程序设计---编程考题
数据加载中...
 
   



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

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