网 校 推 荐
  你的位置:网校首页 >> 技术专栏 >> 软考在线 >> 正文
复旦C语言上机资料
来源:网络搜集 时间:2006年3月14日10:21
C语言上机题型

    一、
     A、由键盘输入一个字符,若该字符是小写英文字母则显示yes,否则显示no

    main()
     {char c;
     scanf("%c",&c);
     if(c>='a'&&c<='z');
     printf("yes");
     else
     printf("no");
     }

    B、由键盘输入一个整数,若它是负数,则显示YES,否则显示NO

    二、
     A、由键盘输入10个整数(两数间用空格分隔)到数组d中,统计并显示出数组d中同时能被3和5整除的元素个数

    main()
     {int b[15];
     int i,j=0;
     for(i=0;i<10;i++)
     scanf("%d",&b[i]);
     for(j=0;j<10;j++)
     if((b[i]%3==0&&b[i]%5==0) j++)
     printf("\n%d",j);
     }

    
     B、由键盘输入10个实数(两数间用空格分隔),输出最大值(最小值\平均值)(精确到小数二位)

    #include <stdio.h>

    main()

    { float i,max,d;
     scanf("%f",&f);
     max=d;
     for(i=2;i<=10;i++)

     { scanf("%f",&f);
     if(d>max)
     max=d;
     }
     printf("%5.2f",max);

    }
     C、由键盘输入一个字符串到字符数组a[100]中,利用if-else语句将该字符串的大写字母改小写字母,同时将小写改大写,并显示变换后的字符串

    #include<stdio.h>
     main()
     {char a[100];
     int i=0;
     gets(a);
     while(a[i]!='\0')
     {if(a[i]>='A'&&a[i]<='Z')
     a[i]+=32;
     else
     if(a[i]>='a'&&a[i]<='z')
     a[i]-=32;
     }
     puts(a);
     }

    D、由键盘输入一个字符串到字符数组h[100]中,而后将该字符串倒序输出

    #include <stdio.h>
     main()
     { char h[100],c;
     int i=0;
     c=0;
     while(c!=10 && c!=13 && i<100)
     { scanf("%c",&c);
     a=c;
     i++;
     }
     i--;
     while(i>=0)
     { printf("%c",a;
     i--;
     }
     }

    E、由键盘输入一个字符串到字符数组C中,统计并显示出数组中数字字符个数

    F、由键盘输入一串字符串字符数组C中,再将C数组中所有的A字符都改为B字符,其他字符不变,而后显示出变换后的该字符串

    
     K、由键盘分别输入行数和星号个数给变量m和n,而后用双重for语句实现类似于如下图案:
     例:键入3 5 <Enter> 则显示 *****
     *****
     *****

    main()
     {int m,n,i,j;
     scanf("%d%d",&m,&n);
     for(i=0;i<m;i++)
     {for(j=0;j<n;j++)
     printf("*");
     puts("\n");
     }
     }

    * 从键盘上接收任意一串字符,统计其中字母a出现的个数。*/
     #include <stdio.h>
     main()
     { char c;
     int i;
     c=0;
     i=0;
     while(c!=10 && c!=13)
     { scanf("%c",&c);
     if(c=='a')
     i++;
     }
     printf("result=%d",i);
     }

    
     *从键盘输入10个任意整数,输出其平方和 */

    #include <stdio.h>
     main()
     { int i,s,d;
     for(i=1;i<=10;i++)
     { scanf("%d",&d);
     s+=d*d;
     }
     printf("result=%d",s);
     }

    
     三、
     A、按如下要求编制程序:
     1.定义一个描述职工信息的结构型变量(包括工号<整型>、月收入工资<整型>和月收入奖金<整型>);
     2.逐个输入若干职工的工号、月收入工资和月收入奖金(两数间用空格分隔)(输入工号等于0时,则输入结束);
     3.计算并显示出每个职工的工号、月总收入(月收入工资和月收入奖金之和)

    B、定义一个函数
     int count(int a[],int n)
     在n个元素的数组a中,统计出大于零的元素个数,此个数作为函数返回值。
     (2)在main()函数中,对数组b做如下初始化
     int b[]={15,16,-23,7,-5,19,-2,0,28,11};
     然后调用你定义的函数,在主函数中输出数组b中小于零元素的个数。

    
     int count(int a[],int n)
     { int i,j=0;
     for(i=0;i<n;i++)
     if(a>=0) j++;
     return(j);
     }
     main()
     { int b[]={15,16,-23,7,-5,19,-2,0,28,11};
     printf("%d\n",10-count(b,10));
     }

    
     C定义一个描述职工信息的结构性变量P(包括工号,月收入)。
     (2)逐个输入若干个职工的工号和月收入(输入的工号为0时为输入结束)
     (3)计算并输出每个职工应交公积金金额(输出包括工号,月收入和应交公积金)
     公积金计算方法为:公积金=(当月收入>=1000元 月收入*4%)
     公积金=(当月收入<1000元 月收入*2%)

    struct zg
     { int gh;
     float ysl;
     } p[100];
     main()
     { int i,n=0;
     float gjj[100];
     printf("Please input gh:");
     scanf("%d",&p[0].gh);
     for(i=0;p.gh!=0;i++)
     { printf("Please input ysl:");
     scanf("%f",&p.ysl);
     if(p.ysl>=1000) gjj=p.ysl*0.04;
     else gjj=p.ysl*0.02;
     printf("Please input gh:");
     scanf("%d",&p[i+1].gh);
     n++;
     }
     for(i=0;i<n;i++)
     printf("gh=%d ysl=%.2f gjj=%.2f\n",p.gh,p.ysl,gjj);
     }

(编辑:wubin)

发表评论】【关闭窗口
热门链接: