欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言程序设计省二级考试题编程.docx

    • 资源ID:35374526       资源大小:30.86KB        全文页数:41页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言程序设计省二级考试题编程.docx

    文件题:1、在文本文件20075.txt中共有500个记录,每个记录是用以下格式表示的5项数据(各数据间以空格分开)(从网络课件中下载素材文件):    学号      姓名      机试成绩     笔试成绩    平时成绩  nnnnnnnnn  cccccc       nn           nn          nn说明:n表示整型;c表示字符型;n的个数表示数据位数,例如nn表示两位整数,c的个数表示字符位数求出前400人的机试的平均成绩。*/#include <stdio.h>#include <stdlib.h>main()    FILE *fp;    char xh10,name7;    int i,js,bs,pscj;    double sum=0,average;    fp=fopen("20075.txt","r");    if(fp!=NULL)            for(i=1;i<=400;i+)                    fscanf(fp,"%s%s%d%d%d",xh,name,&js,&bs,&pscj);            sum+=js;                average=sum/400;        printf("average=%.2lfn",average);        fclose(fp);        else            printf("文件翻开失败!n");        exit(0);    /*average=91.56Press any key to continue*/2、在文本文件20071.txt中共有600个记录,每个记录是一个用xx.x格式表示的实数,编写程序统计出记录中所有大于等于60的数据个数使用循环构造实现) */#include<stdio.h>#include<stdlib.h>main()    FILE *fp;    int i;    double score;    int count=0;    fp=fopen("20071.txt","r");    if(fp!=NULL)            for(i=1;i<=600;i+)                    fscanf(fp,"%lf",&score);            if(score>=60)                count+;                fclose(fp);        printf(">=60的人数为%dn",count);        else            printf("文件翻开失败!n");        exit(0);    /*>=60的人数为513Press any key to continue*/3、/*在文本文件<20211.txt>中共有600个记录,每个记录是一个用"xx.x"格式表示的实数,编程将该文件中的全部数据原样复制一份到文本文件20212.txt中。 */#include <stdio.h>#include <stdlib.h>main()    FILE *f20211,*f20212;    double score;    int i;    f20211=fopen("20211.txt","r");    f20212=fopen("20212.txt","w");    if(f20211!=NULL&&f20212!=NULL)            while( fscanf(f20211,"%lf",&score)!=EOF)                    fprintf(f20212,"%4.1lfn",score);                fclose(f20211);        fclose(f20212);        printf("文件复制成功!n");        else            printf("20211.txt未翻开或20212.txt未翻开!n");        exit(0);    4、#include <stdio.h>#include <stdlib.h>main()    FILE *f20213,*f20214,*f20215;    double score;    f20213=fopen("20213.txt","r");    f20214=fopen("20214.txt","r");    f20215=fopen("20215.txt","w");    if(f20213!=NULL&&f20214!=NULL&&f20215!=NULL)            while( fscanf(f20213,"%lf",&score)!=EOF)                    fprintf(f20215,"%4.1lfn",score);                while( fscanf(f20214,"%lf",&score)!=EOF)                    fprintf(f20215,"%4.1lfn",score);                fclose(f20213);        fclose(f20214);        fclose(f20215);         printf("两个文件合并成功,请检查20215.txt是否存在!n");        else            printf("20213.txt或20214.txt或20215.txt未翻开!n");        exit(0);    5、/*在文本文件<s20212.txt>中共有600个记录,每个记录是一个用"xx.xx"格式表示的实数,编程求出文件中每两个相邻数中的小值的和。注:每两个相邻数的含义是:第i个数及第i+1个数称为是两个相邻数。 */#include <stdio.h>main()    FILE *fp;    double sum=0,score,pre;    fp=fopen("s20212.txt","r");    if(fp!=NULL)            fscanf(fp,"%lf",&pre);        while( fscanf(fp,"%lf",&score)!=EOF)                    if(pre<score)                            sum+=pre;                        else                            sum+=score;                        pre=score;                fclose(fp);        printf("sum=%.2lfn",sum);        else            printf("s20212.txt翻开失败!n");        exit(0);        /*sum=24279.36Press any key to continue*/6、/*在文本文件<20074.txt>中共有600个记录,每个记录是一个用"xx.xx"格式表示的实数,编程求出文件中其值小于50的最大实数首次出现是第几个记录。 */#include <stdio.h>#include <stdlib.h>main()    FILE *fp;    double score,max;    int pos=0,result;    fp=fopen("20074.txt","r");    if(fp!=NULL)            /*找出小于50的第一条记录,并把数据赋值给max*/        while( fscanf(fp,"%lf",&score)!=EOF)                    pos+;            if(score<50)                            max=score;                break;                            fclose(fp);        else            exit(0);        pos=0;    fp=fopen("20074.txt","r");    if(fp!=NULL)            while( fscanf(fp,"%lf",&score)!=EOF)                    pos+;            if(score>max&&score<50)                            max=score;                result=pos;                                fclose(fp);        else            exit(0);        printf("小于50的最大实数首次出现是第%d个记录n",result);一维数组:1#include <stdio.h>main() int i,j,t; int a10=11,33,56,67,25,45,43,54,69,89; printf("冒泡法排序前:n"); for(i=0;i<10;i+)printf("%3d",ai); printf("n");/*冒泡法排序*/ for(i=0;i<10-1;i+) for(j=0;j<10-1-i;j+) if(aj<aj+1) t=aj; aj=aj+1; aj+1=t; printf("冒泡法排序后:n"); for(i=0;i<10;i+) printf("%3d",ai); printf("n"); 102#include <stdio.h>main() int i,j,k,t; int a10=23,45,56,98,56,74,85,33,40,67; printf("选择法排序前:n"); for(i=0;i<10;i+) printf("%3d",ai); printf("n"); /*选择法排序*/ for(i=0;i<10-1;i+) k=i; for(j=i+1;j<10;j+) if(ak<aj) k=j; if(k!=i) t=ak; ak=ai; ai=t; printf("选择法排序后:n"); for(i=0;i<10;i+) printf("%3d",ai); printf("n"); 103/*编写程序实现统计一维数组A中小于数组元素平均值的元素个数并输出数组各元素的值,平均值和小于平均值的元素的个数,数组A的数据为:12,56,69,59,47,21,24,51,64。*/#include <stdio.h>main() int i,count=0,sum=0; double average; int a9=12,56,69,59,47,21,24,51,64; printf("数组原始数据为:n"); for(i=0;i<9;i+) printf("%3d",ai); sum=sum+ai; printf("n"); /*求平均值*/ average=1.0*sum/9; printf("数组各元素的平均值为:n%.2lf。n",average); printf("小于平均值的数据为:n"); for(i=0;i<9;i+) if(ai<average) printf("%3d",ai); count+; printf("n"); printf("小于平均值的元素一共有%d个。n",count);104/*用随机函数产生15到85间的正整数,为一维数组A10赋值,然后将数组A降序排序,输出数组A最大的5个元素的平均值。思路:产生随机数所需要的头文件为"stdlib.h",初始化随机数生成器的语句为" srand(time(0);", 先对数组进展排序,然后计算前5个元素的平均值,最后将该平均值输出*/#include <stdio.h>#include <stdlib.h>main() int i,j,t,a10; double sum=0,average; srand(time(0); /*产生随机数,并输出各个元素*/ printf("随机数数组的各元素为:n"); for(i=0;i<10;i+) ai=rand()%71+15; printf("%3d",ai); printf("n"); /*冒泡法排序*/ for(i=0;i<10-1;i+) for(j=0;j<10-1-i;j+) if(aj<aj+1) t=aj; aj=aj+1; aj+1=t; /*输出排序后的数组*/ printf("排序后的随机数数组的各元素为:n"); for(i=0;i<10;i+) printf("%3d",ai); if(i<5) sum+=ai; average=sum/5.0; printf("n"); printf("最大的五个元素的平均值为:%.2lf。n",average); 105/*求一维数组A中最大3个元素的平方根之和。 A数组的数据为56, 78, 98, 45, 58, 34, 12, 90, 76,88。思路:定义一个数组B,将A的数组的各元素复制到B数组中,然后对B数组升序排序,找出排序后的前三个元素,即为最大的三个元素,最后将此三元素进展计算并输出 */#include <stdio.h>#include <math.h>main() int i,j,t; int a10=56,78,98,45,58,34,12,90,76,88; int b10; double result=0; /*输入a数组,并向将各个元素填入b数组*/ printf("输入数组A的各元素:n"); for(i=0;i<10;i+) printf("%3d",ai); bi=ai; printf("n"); /*对b数组进展逆序排序*/ for(i=0;i<10-1;i+) for(j=0;j<10-1-i;j+) if(bj<bj+1) t=bj; bj=bj+1; bj+1=t; /*输出逆序有序b数组*/ printf("输入数组B的各元素:n"); for(i=0;i<10;i+) printf("%3d",bi); /*此时,B已经有序,前3个元素即为最大值*/ if(i<3) result=result+sqrt(bi); printf("nn"); printf("最大三个元素的平方根之和:%.2lfn",result); 1#include <stdio.h>main() int i,j,t; int a10=11,33,56,67,25,45,43,54,69,89; printf("冒泡法排序前:n"); for(i=0;i<10;i+) printf("%3d",ai); printf("n"); /*冒泡法排序*/ for(i=0;i<10-1;i+) for(j=0;j<10-1-i;j+) if(aj<aj+1) t=aj; aj=aj+1; aj+1=t; printf("冒泡法排序后:n"); for(i=0;i<10;i+)printf("%3d",ai); printf("n"); 102#include <stdio.h>main() int i,j,k,t; int a10=23,45,56,98,56,74,85,33,40,67; printf("选择法排序前:n"); for(i=0;i<10;i+) printf("%3d",ai); printf("n"); /*选择法排序*/ for(i=0;i<10-1;i+) k=i; for(j=i+1;j<10;j+) if(ak<aj) k=j; if(k!=i) t=ak; ak=ai; ai=t; printf("选择法排序后:n"); for(i=0;i<10;i+) printf("%3d",ai); printf("n"); 103/*编写程序实现统计一维数组A中小于数组元素平均值的元素个数并输出数组各元素的值,平均值和小于平均值的元素的个数,数组A的数据为:12,56,69,59,47,21,24,51,64。*/#include <stdio.h>main() int i,count=0,sum=0; double average; int a9=12,56,69,59,47,21,24,51,64; printf("数组原始数据为:n"); for(i=0;i<9;i+) printf("%3d",ai); sum=sum+ai; printf("n"); /*求平均值*/ average=1.0*sum/9; printf("数组各元素的平均值为:n%.2lf。n",average); printf("小于平均值的数据为:n"); for(i=0;i<9;i+) if(ai<average) printf("%3d",ai); count+; printf("n"); printf("小于平均值的元素一共有%d个。n",count);104/*用随机函数产生15到85间的正整数,为一维数组A10赋值,然后将数组A降序排序,输出数组A最大的5个元素的平均值。思路:产生随机数所需要的头文件为"stdlib.h",初始化随机数生成器的语句为" srand(time(0);", 先对数组进展排序,然后计算前5个元素的平均值,最后将该平均值输出*/#include <stdio.h>#include <stdlib.h>main() int i,j,t,a10; double sum=0,average; srand(time(0); /*产生随机数,并输出各个元素*/ printf("随机数数组的各元素为:n"); for(i=0;i<10;i+) ai=rand()%71+15; printf("%3d",ai); printf("n"); /*冒泡法排序*/ for(i=0;i<10-1;i+) for(j=0;j<10-1-i;j+) if(aj<aj+1) t=aj; aj=aj+1; aj+1=t; /*输出排序后的数组*/ printf("排序后的随机数数组的各元素为:n"); for(i=0;i<10;i+) printf("%3d",ai); if(i<5) sum+=ai; average=sum/5.0; printf("n"); printf("最大的五个元素的平均值为:%.2lf。n",average); 105/*求一维数组A中最大3个元素的平方根之和。 A数组的数据为56, 78, 98, 45, 58, 34, 12, 90, 76,88。思路:定义一个数组B,将A的数组的各元素复制到B数组中,然后对B数组升序排序,找出排序后的前三个元素,即为最大的三个元素,最后将此三元素进展计算并输出 */#include <stdio.h>#include <math.h>main() int i,j,t; int a10=56,78,98,45,58,34,12,90,76,88; int b10; double result=0; /*输入a数组,并向将各个元素填入b数组*/ printf("输入数组A的各元素:n"); for(i=0;i<10;i+) printf("%3d",ai); bi=ai; printf("n"); /*对b数组进展逆序排序*/ for(i=0;i<10-1;i+) for(j=0;j<10-1-i;j+) if(bj<bj+1) t=bj; bj=bj+1; bj+1=t; /*输出逆序有序b数组*/ printf("输入数组B的各元素:n"); for(i=0;i<10;i+) printf("%3d",bi); /*此时,B已经有序,前3个元素即为最大值*/ if(i<3) result=result+sqrt(bi); printf("nn"); printf("最大三个元素的平方根之和:%.2lfn",result); 1、打印杨辉三角形#define N 10main() int i,j; int yNN; for(i=0;i<N;i+) for(j=1;j<=i-1;j+) yij=yi-1j-1+yi-1j; /其他元素由上一行得到 yi0=yii=1;/每行首尾元素为1 /数组y初始化完毕 for(i=0;i<N;i+) /用for循环输出数组y for(j=0;j<=i;j+) /杨辉三角只有前i个元素 printf(“%6d,yij); printf(“n); 2、输入3个学生、5门课程的成绩,分别存放在3×6矩阵的前5列上,求出每个学生的平均成绩并存放在该行对应的列上。#include<stdio.h>main() int i,j; float s36,sum; for(i=0;i<3;i+) for(j=0;j<5;j+)scanf("%f",&aij); for(i=0;i<3;i+) sum=0; for(j=0;j<5;j+) sum=sum+sij; / 用循环计算每行前5个元素的和 si5=sum/5; /求出平均并存入该行最后一个元素的位置 for(i=0;i<3;i+) for(j=0;j<6;j+) /用for循环输出数组s,运行结果如下 printf(“%5.1f,sij); printf(“n); 3、将一个二维数组行和列的元素互换,存入另一个二维数组中。参考P123 例6-21#include<stdio.h>void main() int a23=1,2,3,4,5,6; int b32 , i, j; /定义数组a和b printf(“array a:n); for(i=0;i<2;i+) for(j=0;j<3;j+) printf(“%5d,aij); /输出数组a bji=aij; /a的行列互换,存入b printf(“n); printf(“array b:n);for(i=0;i<3;i+) for(j=0;j<2;j+) printf(“%5d,bij); /输入数组b printf(“n); 4、从键盘输入10个学生的成绩,保存在一维数组中,然后显示出平均成绩。要求求平均成绩功能用函数实现。#include<stdio.h>main( ) float average(float b10); float score10,aver; int i; printf (“input 10 scores:n); for (i=0;i<10;i+) scanf (“%f,&scorei); aver=average(score); printf (“average score is %5.2fn,aver);float average (float b10) int i; float aver, sum=0; for (i=0;i<10;i+) sum=sum+bi; aver=sum/10; return(aver);5、从键盘输入一个字符串,统计其字母的个数。#include<stdio.h>#include<string.h>int count(char ch);main()char str200; int i, k; printf(“输入一个字符串:n);gets(str);for(i=0; i<strlen(str);i+)k=count(stri);printf(“n其中字母的个数是:%dn,k);int count(char ch) static int a=0; if(ch>=a && ch<=z | ch>=A && ch<=Z)a+; return a; 6、编写一个处理一维数组的通用过程函数或字程序,该过程可以实现任意一维数组按由大到小进展排序。数组A数据附后,编写主程序调用以上过程,输出经过排序之后最小的3个数组元素之平均值(结果保存小数后两位)。56,78,98,45,58,34,12,90,76,85/*文件main.c*/#include<stdio.h>extern void sort(int a , int m);main( ) int i, a =56,78,98,45,58,34,12,90,76,85;float sum=0; sort(a,10); for(i=10-3;i<10;i+)sum=sum+ai; sum=sum/3;printf(“%.2f,sum);/*文件sort.c*/*冒泡排序法 */extern void sort(int a , int m) int i, j, temp; for(i=0;i<m-1;i+) for(j=0;j<m-i-1;j+) if(aj<j+1) temp=aj;aj=aj+1;aj+1=temp 7、编写一个通用过程函数或子程序),该过程可

    注意事项

    本文(C语言程序设计省二级考试题编程.docx)为本站会员(叶***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开