全国计算机等级考试题库二级C操作题100套(第17套)

第17套:

程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典(从小到大)排序。

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!

给定源程序:

#include <stdio.h> 
#include <string.h> struct student{ long sno; char name[10]; float score[3]; 
}; void fun(struct student a[], int n){  
__1__ t; 
int i, j; 
for (i=0; i<__2__; i++) 
for (j=i+1; j<n; j++) 
if (strcmp(__3__) > 0) 
{ t = a[i]; a[i] = a[j]; a[j] = t; } 
} main() 
{ struct student s[4]={{10001,"ZhangSan", 95, 80, 88},{10002,"LiSi", 85, 70, 78}, 
{10003,"CaoKai", 75, 60, 88}, {10004,"FangFang", 90, 82, 87}}; 
int i, j; 
printf("\n\nThe original data :\n\n"); 
for (j=0; j<4; j++) 
{ printf("\nNo: %ld Name: %-8s Scores: ",s[j].sno, s[j].name); 
for (i=0; i<3; i++) printf("%6.2f ", s[j].score[i]); 
printf("\n"); 
} fun(s, 4); 
printf("\n\nThe data after sorting :\n\n"); 
for (j=0; j<4; j++) 
{ printf("\nNo: %ld Name: %-8s Scores: ",s[j].sno, s[j].name); 
for (i=0; i<3; i++) printf("%6.2f ", s[j].score[i]); 
printf("\n"); 
} 
} 

解题思路:

本题是对结构体数组中的姓名按升序进行排列。
第一处:t是一个临时变量,主要是存放学生数据的结构变量,所以应填:struct student。
第二处:利用两重for循环进行排序操作,排序的终止条件应该是总人数减1,所以应填:n-1。
第三处:对姓名进行比较大小,所以应填:a[i].name,a[j].name。


给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。

例如,调用fun函数之前给字符串输入:ABCDeFGH,调用后字符串中的内容为:eABCDFGH。

请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

给定源程序:

#include <stdio.h> fun( char *p ) 
{ char max,*q; int i=0; 
max=p[i]; 
while( p[i]!=0 ) 
{ if( max<p[i] ) { max=p[i]; q=p+i } 
i++; 
} 
wihle( q>p ) 
{ *q=*(q-1); 
q--; 
} 
p[0]=max; 
} main() 
{char str[80]; 
printf("Enter a string: "); gets(str); 
printf("\nThe original string: "); puts(str); 
fun(str); 
printf("\nThe string after moving: "); puts(str); printf("\n\n"); 
} 

解题思路:

第一处:在语句后缺少分号,所应改为:q=p+i;。
第二处:保留字while写错,所应改为:while(q>p)。


学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组 s中, 请编写函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。

例如,输入的分数是60 69, 则应当把分数在60到69的学生数据进行输出, 包含60分和69分的学生数据。主函数中将把60放在low中,把69放在heigh中。
注意: 部分源程序在文件PROG1.C文件中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入 你编写的若干语句。

给定源程序:

#include <stdio.h> 
#define N 16 typedef struct 
{ char num[10]; 
int s; 
} STREC; int fun( STREC *a,STREC *b,int l, int h ) 
{ 
} main() 
{ STREC s[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85}, 
{"GA001",96},{"GA007",72},{"GA008",64},{"GA006",87}, 
{"GA015",85},{"GA013",94},{"GA012",64},{"GA014",91}, 
{"GA011",90},{"GA017",64},{"GA018",64},{"GA016",72}}; 
STREC h[N],tt;FILE *out ; 
int i,j,n,low,heigh,t; 
printf("Enter 2 integer number low & heigh : "); 
scanf("%d%d", &low,&heigh); 
if ( heigh< low ){ t=heigh;heigh=low;low=t; } 
n=fun( s,h,low,heigh ); 
printf("The student's data between %d--%d :\n",low,heigh); 
for(i=0;i<n; i++) 
printf("%s %4d\n",h[i].num,h[i].s); 
printf("\n"); 
out = fopen("c:\\test\\out.dat","w") ; 
n=fun( s,h,80,98 ); 
fprintf(out,"%d\n",n); 
for(i=0;i<n-1;i++) 
for(j=i+1;j<n;j++) 
if(h[i].s>h[j].s) {tt=h[i] ;h[i]=h[j]; h[j]=tt;} 
for(i=0;i<n; i++) 
fprintf(out,"%4d\n",h[i].s); 
fprintf(out,"\n"); 
fclose(out); 
} 

解题思路:
本题是把符合条件的学生记录存入到另一个结构体,最后通过主函数进行输出。

  1. 符合条件的学生人数存在变量j(初始值为0)中,最后返回其值。
  2. 利用for循环语句,依次判断是否符合条件,如果符合,则存入另一个记录体中,人数j 加1。
    参考答案:
int fun( STREC *a,STREC *b,int l, int h ) 
{ 
int i,j = 0 ; 
for(i = 0 ; i < N ; i++) 
if(a[i].s >= l && a[i].s <= h) b[j++] = a[i] ; 
return j ; 
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266540.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中文能用rsa加密吗_外文文献数据库能用中文词进行检索吗?

大家使用外文文献数据库进行检索的时候可能想过一个问题&#xff1a;我们可以使用中文关键词进行检索吗&#xff1f;上文献检索课的老师可能会这样回答&#xff1a;在一般情况下&#xff0c;是不可以的。那么实际情况是怎样的呢&#xff1f;我们找几个外文文献数据库来验证一下…

长链接转短链接java_长链接生成短链接Java源码(调用百度接口)

public static DefaultHttpClient httpclient;static {httpclient new DefaultHttpClient();//httpclient (DefaultHttpClient) HttpClientConnectionManager.getSSLInstance(httpclient); // 接受任何证书的浏览器客户端}/*** 生成短连接信息** author: zhaojinhui* date: 2…

python学习[第十三篇] 条件和循环

python学习[第十三篇] 条件和循环 if语句 单一if 语句 if语句有三个部分构成&#xff0c;关键字if本身&#xff0c;判断结果真假的条件表达式&#xff0c;以及表达式为真或非0是执行的代码 if expression: expr_true_suite 条件表达式可以是多重的 通过布尔操作符 and or not来…

【maven3学习之三】maven构建一个简单的Hello World

2019独角兽企业重金招聘Python工程师标准>>> 在写之前我先需要配置一下setting.xml。 首先是localRepository&#xff0c;默认情况下是【你的用户目录】/.m2/repository作为本地库的目录&#xff0c;但是我希望将其放在D:\maven_localRepository的目录下面。 如果…

全国计算机等级考试题库二级C操作题100套(第18套)

第18套&#xff1a; 给定程序中&#xff0c;函数fun的功能是&#xff1a;将形参s所指字符串中的所有字母字符顺序前移&#xff0c;其他字符顺序后移&#xff0c;处理后新字符串的首地址作为函数值返回。 例如&#xff0c;s所指字符串为:asd123fgh543df,处理后新字符串为:asdfgh…

python营销骗局_python案例:金融营销活动中欺诈用户行为分析

首先&#xff0c;数据导入 1 importnumpy as np2 importpandas as pd3 from collections importCounter4 importmatplotlib.pyplot as plt5 from pymining importitemmining,assocrules,perftesting,seqmining6 importpyecharts as pe7 rtpd.read_csv(r"E:\transaction_tr…

java 重定向 https_使用简单身份验证从HTTP重定向到HTTPS

我希望得到一些关于如何使用带有ember-simple-auth的ember初始化程序将用户从HTTP重定向到HTTPS的建议 .import ENV from cio/config/environmentSSLInitializer name: sslbefore: simple-auth-cookie-storeinitialize: (container, application) ->application.deferReadin…

你真的会数钱吗?

本文已迁移至&#xff1a;http://thinkinside.tk/2013/01/01/money.html 快年底了&#xff0c;假如你们公司的美国总部给每个人发了一笔201212.21美元的特别奖金&#xff0c;作为程序员的你&#xff0c; 该如何把这笔钱收入囊中&#xff1f; Table of Contents 1 美元&#xff…

Maven 系统环境变量配置

Download http://maven.apache.org/download.cgi http://mirrors.shu.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.zip 环境变量 1.添加 MAVEN_HOME&#xff1a; 变量名&#xff1a;MAVEN_HOME  变量值&#xff1a;C:\Program\apache-maven-3.5.4 注…

全国计算机等级考试题库二级C操作题100套(第19套)

第19套&#xff1a; 程序通过定义学生结构体变量&#xff0c;存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数&#xff0c;在主函数中输出修改后的数据。 例如&#xff1a;a所指变量s中的学号…

eclipse中文乱码解决_解决git status显示中文文件名乱码问题

使用 git status 查看本地有改动但未提交的中文文件名时&#xff0c;发现会显示为一串数字&#xff0c;没有显示中文的文件名。具体如下所示&#xff1a;$ git status# 位于分支 master# 尚未暂存以备提交的变更:# (使用 "git add ..." 更新要提交的内容)# (使用 &qu…

MongoDB 3.X 用户权限控制

摘要&#xff1a; MongoDB 3.0 安全权限访问控制&#xff0c;在添加用户上面3.0版本和之前的版本有很大的区别&#xff0c;这里就说明下3.0的添加用户的方法。 环境、测试&#xff1a; 在安装MongoDB之后&#xff0c;先关闭auth认证&#xff0c;进入查看数据库&#xff0c;只有…

oracle和sql server取第一条记录的区别以及rownum详解

我们知道学生可能有重名的情况&#xff0c;那么当重名的时候假设只需要取得重名结果集中的第一条记录。 sql server:select top(1) num,Name from M_Student where name xy Oracle:select num,Name from M_Student where name xy and rownum < 1 对于rownum在oracle的使用…

全国计算机等级考试题库二级C操作题100套(第20套)

第20套&#xff1a; 给定程序中&#xff0c;函数fun的功能是&#xff1a;计算形参x所指数组中N个数的平均值&#xff08;规定所有数均为正数&#xff09;,将所指数组中小于平均值的数据移至数组的前部&#xff0c;大于等于平均值的数据移至x所指数组的后部&#xff0c;平均值作…

java enum 变量_java枚举使用详解

package com.ljq.test;/*** 枚举用法详解** author jiqinlin**/public class TestEnum {/*** 普通枚举** author jiqinlin**/public enum ColorEnum {red, green, yellow, blue;}/*** 枚举像普通的类一样可以添加属性和方法&#xff0c;可以为它添加静态和非静态的属性或方法**…

c#小游戏_C#小游戏—钢铁侠VS太空侵略者

身为漫威迷&#xff0c;最近又把《钢铁侠》和《复仇者联盟》系列又重温了一遍&#xff0c;真的是印证了那句话&#xff1a;“读书百遍&#xff0c;其意自现”。看电影一个道理&#xff0c;每看一遍&#xff0c;都有不懂的感受~ 不知道大伙是不是也有同样的感受&#xff0c;对于…

输入年份月份判断是平年还是闰年及这个月有多少天

import java.util.Scanner;public class year {public static void main(String[] args) {System.out.println("请输入年份");Scanner sc new Scanner(System.in);int s sc.nextInt();System.out.println("请输入月份");Scanner sc1 new Scanner(System…

VMware Workstation 虚拟机性能优化指南

我们经常使用虚拟机来体验各种新系统&#xff0c;做各类新鲜应用的测试&#xff0c;由于VMware Workstation虚拟机功能强大&#xff0c;又适用于最新的 Windows / linux /Sun等平台&#xff0c;而且操作方便&#xff0c;所以其普及率很高&#xff01;而 VMware Workstation 本身…

全国计算机等级考试题库二级C操作题100套(第21套)

第21套&#xff1a; 给定程序中&#xff0c;函数fun的功能是&#xff1a;计算形参x所指数组中N个数的平均值&#xff08;规定所有数均为正数&#xff09;,将所指数组中大于平均值的数据移至数组的前部&#xff0c;小于等于平 均值的数据移至x所指数组的后部&#xff0c;平均值…

pytorch已经安装成功了为什么不能使用import_使用auto keras的过程

成功安装的总结&#xff1a;1、创建环境名为mykeras、python版本为3.6的独立环境conda create --name mykeras python3.62、用pip安装 torch0.4.1&#xff08;一定要指定版本&#xff0c;否者安装auto keras时报错&#xff09;# Python 3.6 pip install https://download.pytor…