您好,欢迎来到保捱科技网。
搜索
您的当前位置:首页二级C语言-98_真题(含答案与解析)-交互

二级C语言-98_真题(含答案与解析)-交互

来源:保捱科技网


二级C语言-98

(总分100, 做题时间90分钟) 一、程序填空题 1.

给定程序中,函数fun的功能是将a和b所指的两个字符串分别转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。

例如,主函数中输入字符串32486和12345,在主函数中输出的函数值为44831。

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

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序如下。 #include<stdio.h> #include<string.h> #include<ctype.h> #define N 9

long ctod(char*s) { long d=0; while(*s)

if(isdigit(*s)){

/***********found**********/ d=d*10+*s-______;

/***********found*********/ ______;} return d; }

long fun(char *a,char *b) {

/***********found**********/ return ______; }

main()

( char s1[N],s2[N]; do

{ printtf\"Input string s1:\");gets(s1);} while(strlen(s1)>N); do

{ printf(\"Input string s2:\");gets(s2);} while(strlen(s2)>N);

printf(\"The result is:%ld\\n\}

SSS_FILL 分值: 30 \"0\" s++或++s ctod(a)+ctod(b) [解析] 填空1:isdigt(*s)这个函数表示检查*s是否是数字(0~9),d=d*10++s-?表示的是要把字符串分别转换成面值相同的整数,因此本空应该填写\"0\"。

填空2:由填空*s所代表的字符串中字符需要一个一个的字符进行转换成整数,因此此空应该填写s++或++s。

填空3:题目要求把转换后的字符进行相加后作为函数的返回值,因此本空应该填写ctod(a)+ctod(b)。 二、程序改错题 1.

给定程序MODI1.C中fun函数的功能是分别统计字符串中大写字母和小写字母的个数。

例如,给字符串s输入AAaaBBb123CCccccd,则应输出结果为upper=6,lower=8。

请改正程序中的错误,使它能计算出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 给定源程序如下。 #include<stdio.h> /********found********/

void fun(char *s,int a,int b) {

while(*s)

{ if(*s>=\"A\"&&*s<=\"Z\")

/***********found***********/ *a=a+1;

if(*s>=\"a\"&&*s<=\"z\")

/***********found*********/ *=b+1; s++; } }

main()

{ char s[100];int upper=0,lower=0; printf(\"\\nPlease a string:\");gets(s); fun(s,&upper,&lower);

printf(\"\\n upper=%d lower=%d\\n\} SSS_FILL 分值: 30 void fun(char*s,int*a,int*b) *a=*a+1;

*b=*b+1; [解析] 由主函数中调用fun函数的语句fun(s,&upper,&lower)可知,函数的后两个变量为指针的形式,所以用*a和*b。

*a的作用是用来记录大写字母的个数,此处的作用是对*a累加1,所以此处应改为*a=*a+1。

*b的作用是用来记录小写字母的个数,此处的作用是对*b累加1,所以此处应改为*b=*b+1。 三、程序设计题 1.

请编一个函数fun,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)。

例如:实型数为1234.567,则函数返回1234.570000; 实型数为1234.5,则函数返回1234.560000。 注意:部分源程序存在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的若干语句。 给定源程序如下。 #include<stdio.h> float fun(float h) { }

main() { float a;

printf(\"Enter a:\");scanf(\"%f\printf(\"The original data is:\"); printf(\"%f\\n\\n\

printf(\"The result:%f\\n\} SSS_TEXT_QUSTI 分值: 40 float fun(float h) {

long t;

t=(h * 1000+5)/10; return (float)t/100;

} [解析] 注意:本题要求h的值真正进行四舍五入运算,而不是为了输出,即不能用printf(\"%7.2f\来直接得到结果。

1

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

Copyright © 2019- baoaiwan.cn 版权所有 赣ICP备2024042794号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务