c语言编程笔试试题,【C\C++编程C语言面试题】面试问题:C语言编程笔试… - 看准网...

编程题:

1.编写一个函数,从传入的num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。

注意:部分源程序给出如下。

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

#include

#include

#include

char *fun(char (*a)[81],int num)

{

}

main()

{

char ss[10][81],*max;

int n,i=0;

clrscr() ;

printf(“输入若干个字符串:”);

gets(ss[i]);

puts(ss[i]);

while(!strcmp(ss[i],”****”)==0)

{

i++;

gets(ss[i]);

puts(ss[i]);

}

n=i;

max=fun(ss,n);

printf(“\nmax=%s\n”,max);

}

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

例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是A*BC*DEF*G。

注意:部分源程序给出如下。

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

#include

#include

void  fun( char *a, int n, int h, int e)

{

}

main()

{

char s[81],*t,*f;

int m=0, tn=0, fn=0;

printf(“Enter a string:\n”);

gets(s);

t=f=s;

while(*t)

{

t++;

m++;

}

t–;

while(*t==’*')

{

t–;

tn++;

}

while(*f==’*')

{

f++;

fn++;

}

fun( s, m,fn,tn );

printf(“The string after deleted:\n”);

puts(s);

}

改错题:

3.下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如,若输入8名学生的成绩:

80.5 60 72 90.5 98 51.5  88 64

则低于平均分的学生人数为4(平均分为:75.5625)。

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

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include

#include

#define N 20

int fun(float *s,int n,float *aver)

{

float ave,t=0.0;

int count=0,k,i;

/********found********/

for(k=0;k

t=s[k];

ave=t/n;

for(i=0;i

if(s[i]

count++;

/********found********/

*aver=&ave;

return count;

}

main()

{

float s[30],aver;

int m,i;

clrscr();

printf(“\nPlease enter m: “);

scanf(“%d”, &m);

printf(“\nPlease enter %d mark :\n “, m);

for(i=0;i

scanf(“%f”,s+i);

printf(“\nThe number of students : %d\n”,fun(s,m,&aver));

printf(“Ave=%f\n”,aver);

}

4.下列给定程序中,函数fun的功能是:将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位8进制数字。例如,若输入77777,则输出将是32767。

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

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

int fun(char *p)

{

int n;

/********found********/

n=*p-’o';

p++;

/********found********/

while(*p!=0)

{

n=n*7+*p-’o';

p++;

}

return n;

}

main()

{

char s[6];

int i;

int n;

printf(“Enter a string (0catal digits): “);

gets(s);

if(strlen(s)>5)

{

printf(“Error:string too longer !\n\n”);

exit(0);

}

for(i=0;s[i];i++)

if(s[i]’7′)

{

printf(“Error: %c not is ocatal digits!\n\n”,s[i]);

exit(0);

}

printf(“The original string: “);

puts(s);

n=fun(s);

printf(“\n%s is convered to intege number: %d\n\n”,s,n);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值