没有合适的资源?快使用搜索试试~ 我知道了~
首页浙江省计算机二级c语言上机考试练习
资源详情
资源评论
资源推荐
上机程序调试及程序设计练习
上机程序调试及程序设计练习
一、程序填空
(1) 找 Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1
#include <stdio.h>
#include<math.h>
void main()
{ int i,a,b,c;
for(i=100;i<=999;i++)
{ a=i/100;
_______1_______ // b=i%100/10;
c=i%10;
if (________2________) // a*a*a+b*b*b+c*c*c = = i
printf("%d is a Armstrong number!",i);
}
}
(2) 输入 1 个整数后,输出该数的位数。(例:输入 3214 则输出 4,输入-23156 则输出 5)。
#include <stdio.h>
void main()
{ int n,k=0;
scanf("%d",&n);
while( _____1_____ ){ // n!=0
k++;
_____2_____; // n=n/10
}
printf("%d",k);
}
(3) 求输入的整数各位数字之和,如输入 234 则输出 9,输入-312 则输出 6。
#include <stdio.h>
#include <math.h>
void main()
{
int n,s=0;
scanf("%d",&n);
______ 1 ______ // if (n<0) n=-n;
while(n!=0) {
______ 2 ______ // s+=n%10;
n=n/10;
1 of 25 8/5/2021
上机程序调试及程序设计练习
}
printf("%d\n",s);
}
(4) 调用函数 f,将一个整数首尾倒置。例如:若程序输入 12345,则输出 54321;若程序输入-
34567,则输出-76543。
#include <stdio.h>
#include <math.h>
long f(long n)
{ long m,y=0; m=fabs(n);
while(m!=0) {
y=y*10+m%10;
____1____ // m=m/10 ;
}
if(n>=0) return y;
else _____2_____ // return -y ;
}
void main()
{
printf("%ld\t",f(12345)); printf("%ld\n",f(-34567));
}
(5) 调用函数 f,从字符串中删除所有的数字字符。
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void f(char *s)
{ int i=0;
while(s[i]!='\0'){
if(isdigit(s[i])) ____1____(s+i,s+i+1); // strcpy
___2___ i++;} // else
}
void main()
{ char str[80];
gets(str); f(str); puts(str);
}
(6) 调用 find 函数在输入的字符串中查找是否出现"the"这个单词。如果查到返回出现的次数,如果
未找到返回 0。
#include <stdio.h>
int find(char *str)
{ char *fstr="the";
int i=0,j,n=0;
while (str[i]!='\0')
2 of 25 8/5/2021
上机程序调试及程序设计练习
{
for(______1______) // j=0; j<3; j++
if (str[j+i]!=fstr[j]) break;
if (______2______) n++; // j>=3
i++;
}
return n;
}
void main()
{ char a[80];
gets(a);
printf("%d",find(a));
}
(7) 输入的一个小写字母,将字母循环后移 5 个位置后输出。例如:"a"变成"f","w"变成"b"。
#include <stdio.h>
void main()
{ char c;
c=getchar();
if(______1______) // c>='a'&&c<='u'
c=c+5;
else
if (c>='v' && c<='z')
______2______ // c=(c-'a'+5)%26+'a';
putchar(c);
}
(8) 将字符串 s 中所有的字符'c'删除。
#include <stdio.h>
void main()
{ char s[80];
int i,j;
gets(s);
for(i=j=0; ______1______; i++) // s[i] != '\0'
if(s[i] != 'c')
{ s[j]=s[i];
______2______ // j++;
}
s[j]='\0';
puts(s);
}
(9) 对 x=1,2,……,10,求 f(x)=x*x-5*x+sin(x)的最大值。
#include <stdio.h>
3 of 25 8/5/2021
上机程序调试及程序设计练习
#include <math.h>
#define f(x) x*x-5*x+sin(x)
void main()
{ int x; float max;
______1______ // max=f(1);
for(x=2;x<=10;x++)
______2______ // if (f(x)>max) max=f(x);
printf("%f\n",max);
}
(10) 输入三个整数,按由小到大的顺序输出这三个数。
#include <stdio.h>
void swap(______1______) // int *pa, int *pb
{ /*交换两个数的位置*/
int temp;
temp = *pa;
*pa = *pb;
*pb = temp;
}
void main()
{ int a,b,c,temp;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
swap(&a,&b);
if(b>c)
swap(&b,&c);
if(______2______) // if ( a>b )
swap(&a,&b);
printf("%d,%d,%d",a,b,c);
}
(11) 调用函数 f,去除数组中的负数,输入数组 x[7],输出结果为:1 3 4 6
#include <stdio.h> // 数组元素的删除
void f(int *a,int *m)
{ int i, j ;
for(i=0;i<*m;i++)
if(a[i]<0) {
for(j=i--;j<*m-1;j++) a[j]=a[j+1];
_____1_____; // *m = *m-1;
}
}
void main()
{ int i,n=7,x[7]={1,-2,3,4,-5,6,-7};
_______2_______; // f (x, &n) ;
4 of 25 8/5/2021
上机程序调试及程序设计练习
for(i=0;i<n;i++) printf("%5d",x[i]);
printf("\n");
}
(12) 调用函数 f 计算代数多项式 1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x 当 x=1.7 时的值。
#include <stdio.h>
float f(float, float*, int);
void main()
{ float b[5]={1.1, 2.2, 3.3, 4.4, 5.5 };
printf("%f\n", f(1.7,b,5) );
}
float f( _______1________ ) // float x, float *a, int n
{ float y=a[0], t=1; int i;
for(i=1; i<n; i++) { t=t*x; y=y+a[i]*t; }
_____2_____ // return y;
}
(13) 分别统计字符串中英文字母、数字、和其他字符出现的次数。
#include <stdio.h>
#include <ctype.h>
void main()
{ char a[80]; int n[3]={0}, i; gets(a) ;
________1________ // for ( i=0; a[i]!='\0'; i++)
{if (tolower(a[i])>='a' && tolower(a[i])<='z') /*统计字母个数*/
n[0]++;
else if (________2________) /*统计数字个数*/ // a[i]>='0' && a[i]<='9'
n[1]++;
else
n[2]++;
}
for(i=0;i<3;i++) printf("%d\n",n[i]);
}
(14) 将输入的十进制整数 n 通过函数 DtoH 函数转换为十六进制数,并将转换结果以字符串形式输出。
(例如:输入十进制数 79,将输出十六进制 4f。)
# include <stdio.h>
# include <string.h>
char trans(int x)
{
if(x<10) return '0'+x;
else _______1________ // return 'a'+x-10;
}
int DtoH(int n,char *str)
{
5 of 25 8/5/2021
剩余24页未读,继续阅读
owen_09
- 粉丝: 19
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 27页智慧街道信息化建设综合解决方案.pptx
- 计算机二级Ms-Office选择题汇总.doc
- 单链表的插入和删除实验报告 (2).docx
- 单链表的插入和删除实验报告.pdf
- 物联网智能终端项目设备管理方案.pdf
- 如何打造品牌的模式.doc
- 样式控制与页面布局.pdf
- 武汉理工Java实验报告(二).docx
- 2021线上新品消费趋势报告.pdf
- 第3章 Matlab中的矩阵及其运算.docx
- 基于Web的人力资源管理系统的必要性和可行性.doc
- 基于一阶倒立摆的matlab仿真实验.doc
- 速运公司物流管理模式研究教材
- 大数据与管理.pptx
- 单片机课程设计之步进电机.doc
- 大数据与数据挖掘.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论2