高级语言程序设计模拟试题及参考答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

高级语言程序设计模拟试题及参考答案

1.w是一个大于10的无符号整数,若w是n(n>=2)位的整数,函数求出w的低n-1位的数作为函数值返回。

如输入790404,输出为90404。

#include

unsigned fun(unsigned w)

{int j=1;

unsigned sum=0;

while (w!=0)

{if (w<10) break;

sum=sum+w%10*j;

j=j*10;

w=w/10;

}

return sum;

}

int main()

{

unsigned x;

printf("enter a unsigned integer number:");

scanf("%u",&x);

printf("the original data is :%d\n",x);

if (x<10) printf("data error!");

else

printf("the result :%u\n",fun(x));

printf("\n");

return 0;

2.完成decrypt函数,实现解密功能:将任意密文实现解密输出。

加密规则:字符串中所有小写英文字母循环加密。如a到b,b到c,…,z到a。

如输入az ibwf b mjuumf bqqmf!,输出为:zy have a little apple!

#include

#include

void decrypt(char *s)

{

while (*s)

{

if (*s>='a'&& *s<='z')

if (*s=='a') *s='z';

else

*s=*s-1;

s++;

}

}

int main()

{

char t1[80],ch;

gets(t1);

printf("\nthe original data is :%s",t1);

decrypt(t1);

printf("\nthe resulted data is :%s",t1);

printf("\n");

return 0;

3. 用选择法实现对10个整数按从大到小的顺序排序输出(要求用指针实现)。

#include

int main()

{

int a[10],i,j;

void sort(int *);

for(i=0;i<10;i++)

scanf("%d",&a[i]);

printf("\nthe original data is :");

for(i=0;i<10;i++) printf("%d ",a[i]);

sort(a);

printf("\nthe result data is :");

for(i=0;i<10;i++)

printf("%d ",a[i]);

puts("");

return 0;

}

void sort1(int *p)

{

int i,j,t;

for(i=0;i<9;i++)

for(j=i+1;j<10;j++)

if(*(p+i)<*(p+j))

{

t=*(p+i);

*(p+i)=*(p+j);

*(p+j)=t;

}

4. 编写函数,使字符串中尾部的*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,什么也不做。

例如:字符串内容为*******AS*BHH**G*******,若n值为4,删除后,字符串内容应该为:*******AS*BHH**G****,若n值为9,则为*******AS*BHH**G*******

#include

void fun(char *a,int n)

{

char *t=a;int m=0;

while (*t) t++;

t--;

while (*t=='*')

{t--;m++;}

if (m>n) *(t+n+1)='\0';

}

void main()

{

char s[81];

int n;

printf("Enter a string:\n");

gets(s);

printf("\nenter n:");

scanf("%d",&n);

fun(s,n);

printf("the string after deleted:\n");

puts(s);

printf("\n");

6. 用冒泡法实现对10个整数按从小到大的顺序排序输出(要求用指针实现)。#include

int main()

{

int a[10],i,j;

void sort(int *);

for(i=0;i<10;i++)

scanf("%d",&a[i]);

printf("\nthe original data is :");

for(i=0;i<10;i++) printf("%d ",a[i]);

sort(a);

printf("\nthe result data is :");

for(i=0;i<10;i++)

printf("%d ",a[i]);

puts("");

return 0;

}

void sort(int *p)

{

int i,j,t;

for(i=0;i<9;i++)

for(j=0;j<9-i;j++)

相关文档
最新文档