您的当前位置:首页正文

上海大学考研 试卷及答案

来源:帮我找美食网
上海大学

课程名: 程序设计基础(C语言) 课程号: 00863006 学分: 5

上机操作题,4题,共70分

第1题(源程序文件 E:\\answer\\1-A-1.C )

上机要求:下列程序包含4个错误(2个函数各2行有错误),请输入该程序的代码,找出并更正程序错误,在修改行代码后增加“/***/”注释,将修改后的源程序保存到 E:\\answer\\1-A-1.C 中。

程序功能:从键盘上输入一行字符串,选择其中的大写字母,并输出。 如输入:

Hello, This Is An English Sentence. 则输出: HTIAES 再如输入:

ABC, abc, DEF, 123. 则输出: ABCDEF 函数说明:

程序中函数str_select_up从字符串a中选择大写字母到字符串b中,同时返回字符串b。函数中变量i用于遍历字符串a,变量k用于计数大写字母个数,同时用于b数组的下标。主函数main从键盘上输入一行字符串,调用str_select_up函数取其中大写字母到字符串b,并输出字符串b。2个函数各有2个错误,分布在不同代码行上。 带错误原程序:

#include

char *str_select_up( char b[], char a[] ) {

int i, k = 0;

for ( i=0; a[i]!=='\\0'; i++ ) if ( a[i]>='A' && a[i]<='Z' ) b[k++] = a[i];

b[k] = '\\0\"; return b; }

main() {

char a[100], b[100];

gets( a[100] ); str_select_up( b, a ) puts( b ); }

(093操作题A) 1 / 8

更正程序参考 更正程序 错误点 #include char *str_select_up( char b[], char a[] ) { int i, k = 0; for ( i=0; a[i]!='\\0'; i++ ) /***/ !后双等于改为1个等于 if ( a[i]>='A' && a[i]<='Z' ) b[k++] = a[i]; b[k] = '\\0'; /***/ 双引号改为单引号 return b; } main() { char a[100], b[100]; 去掉数组名后的中括号 gets( a ); /***/ str_select_up( b, a ); /***/ 缺分号 puts( b ); }

第2题(源程序文件 E:\\answer\\1-A-2.C )

上机要求:按程序功能要求编写程序,并将程序代码保存到 E:\\answer\\1-A-2.C 中。 程序功能:编写程序,按示例实现以下功能:

(1) 输出本题考试的学期号与题号,即“093,1-A-2”

(2) 输出考生的基本信息,包括实际考试机房、机号、机号的单双(机号单输出Odd,

机号双输出Even)、学号、姓名拼音。 (3) 从键盘上输入3个整数。 (4) 输出其中的最大值与最小值。 (5) 输出其中大小居中的数值。 如输入:

70 50 90 则输出:

093,1-A-2

D413-27(Odd),09123456,ZhangDaHai 注:本行请按考生实际情况输出 Max=90, Min=50 Midd=70

示例说明:输出共4行,第1行为本考题基本信息,应为“093, 1-A-2”;第2行为考生本次考试的基本信息,请按实际情况输出,示例表示D413机房的27号计算机,机号为单(输出Odd),学号为09123456,姓名拼音为ZhangDaHai(张大海);输入三数的最大值为90,最小值为50,中间值为70。 再如输入:

-90 -50 -70 则输出:

093,1-A-2

(093操作题A) 2 / 8

D413-27(Odd),09123456,ZhangDaHai 注:本行请按考生实际情况输出 Max=-50, Min=-90 Midd=-70

示例说明:输入三数可以为负数,最大值为-50,最小值为-90,中间值为-70。

程序参考 参考程序 说明 #include 程序文件:1分 main() main与变量:1分 { 学期与题号:2分 int a,b,c,max,min,mid; 学生信息:4分 printf(\"093,1-A-2\\n\" ); printf(\"D413-27(Odd),09123456,ZhangDaHai\\n\"); 注:核对学生信息真实性 scanf(\"%d%d%d\输入:2分 if (a>=b && a>=c) max=a; 计算最大值:2分 else if (b>=a && b>=c) max=b; else max=c; if (a<=b && a<=c) 计算最小值:2分 min=a; else if (b<=a && b<=c) min=b; else min=c; mid=a+b+c-max-min; 计算中间值:2分 输出:2分 printf(\"Max=%d,Min=%d\\n\ printf(\"Midd=%d\\n\}

第3题(源程序文件 E:\\answer\\1-A-3.C )

上机要求:按程序功能要求编写程序,并将程序代码保存到 E:\\answer\\1-A-3.C 中。 程序功能:从键盘上输入n和n个整数(设n与每个整数均取值1至5),按示例格式输出n行数字图形,每行的数字及数字个数与输入数相对应。编写程序可以使用或参考所提供的函数。 如输入:

5 5 4 3 2 1

(093操作题A) 3 / 8

则输出(□表示空格,↙表示回车): 1□2□3□4□5□↙ □□1□2□3□4□↙ □□□□1□2□3□↙ □□□□□□1□2□↙ □□□□□□□□1□↙

示例说明:输入的第1个数为5,表示输出共5行,右对齐形状。接着输入的第1个数为5,则输出的第1行有5个数(取值1至5),数字之间含有1个空格,数值1之前有2*(5-5)=0个空格;以此类推。 再如输入: 3 2 3 2

则输出(□表示空格,↙表示回车): □□□□□□1□2□↙ □□□□1□2□3□↙ □□□□□□1□2□↙

示例说明:输入的第1个数为3,表示输出共3行。接着输入的第1个数为2,则输出的第1行有2个数(取值1至2),数字之间含有1个空格,数值1之前有2*(5-2)=6个空格;以此类推。 函数说明:

下列代码提供2个函数,可供编写程序时调用或参考。其中函数sca_0从键盘上输入n和n个整数至数组a,并返回整数n;函数prtline可以输出图案中的某一行,参数m表示输出该行的m个数(取值1至m)。 函数代码: 函数代码 说明 int sca_n(int a[]) 函数:输入n和n个整数至数组 { int n, i; 先输入整数n scanf(\"%d\ 再输入n个整数至数组a中 for (i=0;i程序参考 参考程序1:使用函数 评分说明 (093操作题A) 4 / 8

#include int sca_n(int a[]) { int n, i; scanf(\"%d\ for (i=0;i main() { int n,i,j,a[10]; scanf(\"%d\ for (i=0;i} } 第4题(源程序文件 E:\\answer\\1-A-4.C )

上机要求:按程序功能要求编写程序,并将程序代码保存到 E:\\answer\\1-A-4.C 中。 程序功能:输入10个整数(存贮在一维数组a中),按示例格式计算并输出以下结果。 (1) 查找数值为100的元素并输出其下标(如果有多个100则输出第1个100的下标),

如果没有找到,则输出Not Found; (2) 统计数值为0的元素个数并输出;

(3) 从大到小排序,并按每行4个数的格式输出; 如输入:

10 20 30 40 50 100 60 70 80 100 则输出: a[5]=100

Count(0)=0

100 100 80 70

60 50 40 30 20 10

示例说明:输入10个整数,第1个100出现在下标5位置,数值0没有出现,排序后分3行输出,第1行与第2行各有4个数。 如输入:

10 0 -50 0 50 60 70 80 90 199 则输出:

Not Found(100) Count(0)=2

199 90 80 70 60 50 10 0 0 -50

示例说明:输入10个整数(可以有负数或超过100的数),其中100没有出现,0出现2次。排序后分3行输出,第1行与第2行各有4个数。

程序参考 参考程序1:使用函数 评分说明 #include 程序文件:1分 void sca(int a[],int n) sca函数:1分 { 函数说明、变量定义:0.5分 int i; 循环+输入:0.5分 for (i=0;iif (a[i]==x) return i; return -1; } int count(int a[],int n,int x) { int ct=0, i; for (i=0;i0) printf(\"a[%d]=100\\n\ else printf(\"Not Found(100)\\n\"); ct=count(a,10,0); printf(\"Count(0)=%d\\n\ sort_b(a,10); 判断:0.5分 返回i:0.5分 count函数:2分 函数说明、变量定义、返回:0.5分 循环:0.5分 判断:0.5分 计数:0.5分 sort_b函数:3分 函数说明、变量定义:0.5分 外循环:0.5分 内循环:0.5分 比较:0.5分 交换:1分 prt_m函数:3分 函数说明、变量定义:0.5分 循环:0.5分 判断:1分 (条件i==n-1不计分) 输出:1分 main与变量:1分 调用sca:1分 调用find:1分 输出:1分 调用count:1分 输出:1分 调用sort_b:1分 调用prt_m:1分 (093操作题A) 7 / 8

prt_m(a,10,4); } 参考程序2:不使用函数 #include #define N 10 main() { int a[N],i,j,t,ct; for (i=0;i

因篇幅问题不能全部显示,请点此查看更多更全内容

Top