C语言上机100套题 联系客服

发布时间 : 星期六 文章C语言上机100套题更新完毕开始阅读

与其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。 例如,若输入77777,则输出32767。 【答案】【1】n= *p-′0′; 【2】n=n*8+*p-′0′;

【编程】学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:函数返回该学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)。 【答案】

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

int i;

STREC str={\,-1};

if(strcmp(a[i].num,b)==0) str=a[i]; return str; }

17◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回1,失败时返回0。在复制的过程中,把复制的内容输出到屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。 【答案】【1】\【2】fs 【3】ft

【改错】下列给定程序中函数fun的功能是:将长整型数中各位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为87653142时,t中的数:8642。 【答案】【1】if(d%2==0) 【2】s/=10;

【编程】编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。

例如,当a=45,b=12时,调用该函数后,c =5142。 【答案】

void fun(int a,int b,long *c) {

*c=b+(a/10)*10+(b/10)*100+(a)*1000; }

18◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:有N×N矩阵,根据给定的m(m<=N)值,将每行元素中的值均向右移动m个位置,左位置为0。例如,N=3,m=2,有下列矩阵 1 2 3

4 5 6 7 8 9 程序执行结果为 0 0 1

0 0 4 0 0 7 【答案】【1】i++ 【2】m 【3】m

【改错】下列给定程序中函数fun的功能是:计算并输出high以内最大的10个素数的和。high的值由主函数传给fun函数。例如,若high的值为100,则函数的值为732。 【答案】

【1】while((high>=2) && (n<10)) 【2】yes=0; break;

【编程】编写函数fun,其功能是:利用下面的简单迭代方法求方程cos(x)-x=0的一个实根。 xn+1=cos(xn) 迭代步骤如下:

(1)取x1初值为0.0;

(2)x0=x1,将x1的值赋给x0; (3)x1=cos(x0),求出一个新的x1;

(4)若x0-x1的绝对值小于0.000001,执行步聚(5),否则执行步聚(2); (5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。 程序将输出结果Root=0.739086。 【答案】 float fun() {

float x1=0.0,x0; do {

x0=x1; x1=cos(x0); }

while (fabs(x0-x1)>=1e-6); return x1; }

19◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。

例如,a所指变量中的学号、姓名和三门课的成绩依次是:10001、\、95、80、88,则修改后输出b中的数据应为:10002、\、95、80、88。 【答案】【1】a 【2】b.name 【3】score[i]

【改错】下列给定程序中函数fun的功能是:删除s所指字符中所有的小写字母c 。 【答案】【1】s[j++]=s[i]; 【2】s[j]= ′\\0′;

【编程】规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串中的前导*号全部移到字符串的尾部。例如,字符串中的内容为:*******A*BC*DEF*G****,移动后,字符串中的内容应当是:A*BC*DEF*G***********。在编写函数时,不得使用C语言提供的字符串函数。

【答案】

void fun(char *a) {

int i=0,n=0; char *p; p=a;

while (*p==′*′) {

n++;p++; }

while(*p) {

a[i]=*p;i++;p++; }

while(n!=0) {

a[i]=′*′;i++;n--; }

a[i]=′\\0′; }

20◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序的功能是:从键盘输入若干行字符串(每行不超过80个字符),写入文件myfile4.txt中,用-1作字符串输入结束的标志,然后将文件的内容显示在屏幕上。文件的读写分别由函数ReadText和WriteText实现。 【答案】【1】*fw 【2】str 【3】str

【改错】下列给定程序中函数fun的功能是:从低位开始依次取出长整型变量s中奇数位上的数,构成一个新数存放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为7654321时,t中的数为7531。 【答案】

【1】void fun(long s,long *t) 【2】s1=s1*10

【编程】编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。

例如,当a=45,b=12时,调用该函数后,c=1524。 【答案】

void fun(int a,int b,long *c) {

*c=a/10+(b)*10+(a)*100+(b/10)*1000; }

21◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:有N×N矩阵,将矩阵的外围元素做顺时针旋转。操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,再使临时数组中的元素成为最后一列。

例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 操作后应为: 7 4 1 8 5 2 9 6 3 【答案】【1】0【2】j--【3】j

【改错】下列给定程序中函数fun的功能是:计算S=f(-n)+f(-n+1)+?+f(0)+f(1)+f(2)+?+f(n)的值。

例如,当n的值为5时,函数值应为10.407143。f(x)函数定义如下: (x+1)/(x-2) x>0且x≠2 f(x)= 0 x=0或x=2 (x-1)/(x-2) x<0 【答案】【1】double f(double x) 【2】return s ;

【编程】编写函数fun,其功能是计算:s作为函数值返回。在C语言中可调用log(n)函数求ln(n)。log函数的引用说明为:double log(double x)。例如,若m的值为20,则fun函数值为6.506583。 【答案】

double fun(int m) {

int i;

double s=0.0;

for(i=1;i<=m;i++) s=s+log(i); return sqrt(s); }

22◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串,并输出,若没找到则输出相应信息。ss所指字符串数组中共有N个字符串,且串长小于M。程序中库函数strstr(s1,s2)的功能是在s1串中查找s2子串,若没有,函数值为0,若有,函数值为非0。 【答案】【1】N 【2】substr 【3】0

【改错】下列给定程序中函数fun的功能是:求三个数的最小公倍数。例如,若给主函数中的变量x1、x2、x3分别输入15 11 2,则输出结果应当是330。 【答案】

【1】fun(int x,int y, int z) 【2】return j;

【编程】规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:只删除字符前导和尾部的*号,串中字母间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中尾部*号的个数。在编写函数时,不得使用C语言提供的字符串函数。 【答案】