高级语言程序设计模拟试题及参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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++)