西工大C语言实验考题及答案
#include
using namespace std;
int main()
{
int A[100],n,i;
cin>>n;
for(i=0;i
for(i=1;i
}
#include
using namespace std;
int main()
{
char a,b,c;
for(a='X';a<='Z';a++)
for(b='X';b<='Z';b++)
for(c='X';c<='Z';c++)
{
if(a=='Z'&&b=='Y'&&c=='X')cout<<"A="<"<
}
return 0;
}
#include
using namespace std;
int main()
{
char a,b,c;
for(a='X';a<='Z';a++)
for(b='X';b<='Z';b++)
for(c='X';c<='Z';c++)
{
if(a=='Z'&&b=='Y'&&c=='X')cout<<"A="<break;
}
return 0;
}
#include
#include
int main()
{
double a;
int i=0;
scanf("%lf",&a);
while(fabs(a)>=1){
a=a/10;
i++;
}
printf("%d",i);
return 0;
}
#include
using namespace std;
int main()
{
int i,j,k,s,x;
for(i=30;i<=100;i++)
{
for(j=1;j<=9;j++)
for(k=0;k<=9;k++)
{
s=j*1000+j*100+k*10+k;
if(j!=k&&s==i*i){cout<}
}
return 0;
}
#include
#include
using namespace std;
int main()
{
string s1,s2;
cin>>s1;
cin>>s2;
if(s1>s2)cout<<1<
}
#include
using namespace std;
int hb(int n)
{
while(n!=0)
{
if(n%10==8) return 1;
n=n/10;
}
}
int cb(int n)
{
if(n%8==0)return 1;
else return 0;
}
int jb(int n)
{ int a,s=0;
while(n!=0)
{a=n%10;
s=s+a;
n=n/10;
}
if(s==8)return 1;
else return 0;
}
int main()
{
int n,i;
cin>>n;
for(i=1;i<=n;i++)
if(hb(i)||cb(i)||jb(i))cout< return 0;
}
C语言实验题与参考答案
实验一1、计算整数各位数字之和(10分)输入一个 3 位正整数,将其每一位的数字相加,输出和。
输入格式 :输入一个 3 位正整数。
变量数据种类为unsigned 。
输出格式 :输出整数每一位相加后的整数和。
输入样例 :输出样例 :【参照答案】#include ""int main(){ unsigned int a,ge,shi,bai,sum;scanf("%d",&a); ge=a%10;shi=a/10%10;bai=a/100;sum=ge+shi+bai;printf("%d\n",sum);return 0;}2、计算代数表达式(10分)求:输入格式 :输入角度 x。
变量数据种类为double 。
π为。
输出格式 :输出 y 的值,精准到小数点后 2 位。
输入样例 :输出样例 :【参照答案】#include <>#include <>#define PIint main(){double x,y;scanf("%lf",&x);y=sqrt((sin(60*PI/180)+1)*(sin(30*PI/180)+1)/cos(x*PI/180));printf("%.2lf",y);return 0;}3、逆序的三位数(10分)程序每次读入一个正 3 位数,而后输出按位逆序的数字。
注意:当输入的数字含有结尾的 0 时,输出不该带有前导的 0。
比方输入 700,输出应当是 7。
输入格式:每个测试是一个 3 位的正整数。
输出格式:输出按位逆序的数。
输入样例:输出样例:【参照答案】#include ""int main(){ int a,ge,shi,bai,b;scanf("%d",&a);ge=a%10;shi=a/10%10;bai=a/100;b=ge*100+10*shi+bai;printf("%d\n",b);return 0;}4、求整数均值(10分)此题要求编写程序,计算 4 个整数的和与均匀值。
C语言实验册完整答案
实验2答案五.程序改错#include<stdi o.h>int main(void){int x=3,y;y = x*x;printf("%d = %d * %d\n",y,x,x); /* 输出*/printf("%d * %d = %d\n",x,x,y);return 0;}六、一般编程题6.1#include<stdio.h>int main(void){int x,y;printf("Input x: ");scanf("%d",&x);printf("Input y: ");scanf("%d",&y);printf("%d + %d = %d\n",x,y,x+y);printf("%d - %d = %d\n",x,y,x-y);printf("%d * %d = %d\n",x,y,x*y);printf("%d / %d = %d\n",x,y,x/y);printf("%d %% %d = %d\n",x,y,x%y);return 0;}6.2#include<stdio.h>int main(void){ float x; double y;printf("Input x: ");scanf("%f",&x);printf("Input y: ");scanf("%lf",&y);printf("%f + %f = %f\n",x,y,x+y);printf("%f - %f = %f\n",x,y,x-y);printf("%f * %f = %f\n",x,y,x*y);printf("%f / %f = %f\n",x,y,x/y);return 0;}6.3#include<stdio.h>int main(void){ char c;printf("Input c: ");scanf("%c",&c);printf("%c\n",c+32);return 0;}6.4#include<stdio.h>int main(void){int celsius,fahr;fahr = 150;celsius = 5*fahr/9 - 5*32/9;printf("fahr = %d, celsius = %d\n", fahr, celsius);return 0;} 如果使用公式9)32(5-⨯=f c 计算结果不一样,celsius = 65。
西工大C语言上机考试题库
1:2:3#include<stdio.h>#include<math.h>int main(){int i=0,j=0,k=0,a=0,b=0,c=0,l=0,m=0,n=0,d=0,p=0,q=0; for(i=1;i<=3;i++){for(j=1;j<=9;j++){if(i!=j){for(k=1;k<=9;k++){if(k!=j&&i!=k){a=i*100+j*10+k;b=a*2;c=a*3;l=b%10,d=c%10;m=(b%100)/10,p=(c%100)/10;n=b/100,q=c/100;if(l!=0&&m!=0&&n!=0&&d!=0&&p!=0&&q!=0)if(i!=l&&i!=m&&i!=n&&j!=l&&j!=m&&j!=n&&k!=l&&k!=m&&k!=n) if(i!=d&&i!=p&&i!=q&&j!=d&&j!=p&&j!=q&&k!=d&&k!=p&&k!=q)if(l!=d&&l!=p&&l!=q&&m!=d&&m!=p&&m!=q&&n!=d&&n!=p&&n! =q)printf("%d %d %d\n",a,b,c);}}}}}return 0;}8#include"stdio.h"int main(){int a,b[10],m=0,n=0,p;int i,j,k;scanf("%d",&a);for(i=1;i<=a;i++){m=0;n=0;p=i;for(j=0;p!=0;j++){b[j]=p%10;p=p/10;}for(k=0;k<j;k++){m=m+b[k];if(b[k]==8){n=1;}}if(m%8==0){printf("%d ",i);continue;}if(i%8==0){printf("%d ",i);continue;}if(n==1){printf("%d ",i);continue;}}return 0; }8的次数A*B#include <stdio.h>#include <string.h>#include <stdlib.h>void cheng(char a[],char b[]){int i,j,ca,cb,*s;ca=strlen(a);cb=strlen(b);s=(int *)malloc(sizeof(int)*(ca+cb));for (i=0;i<ca+cb;i++) s[i]=0;for (i=0;i<ca;i++)for (j=0;j<cb;j++)s[i+j+1]+=(a[i]-'0')*(b[j]-'0');for (i=ca+cb-1;i>=0;i--)if (s[i]>=10){s[i-1]+=s[i]/10;s[i]%=10;}i=0;while(s[i]==0) i++;for (;i<ca+cb;i++) printf("%d",s[i]);printf("\n");free(s);}int main(){char a[100],b[100];gets(a),gets(b);if(a[0]=='-'&&b[0]!='-'){printf("-");cheng(&a[1],b);}else if(a[0]=='-'&&b[0]=='-'){cheng(&a[1],&b[1]);}else if(a[0]!='-'&&b[0]=='-'){printf("-"); cheng(a,&b[1]); }elsecheng(a,b); return 0;}N边形面积#include<stdio.h>#include<math.h>#define PI 3.1415926int main(){double s,a;int n;scanf("%d %lf",&n,&a); s=a*a*n/(2*2*tan(PI/n)); printf("%.2lf\n",s); return 0;}参加竞赛#include<stdio.h>int main(){int a,b,c,d,e;for(a=0;a<2;a++)for(b=0;b<2;b++)for(c=0;c<2;c++)for(d=0;d<2;d++)for(e=0;e<2;e++)if(((a==1&&b==1)||(a==0&&b==0))&&((b==0&&c==1)||(b==1&&c==0))&&((c==1&&d==1)||(c==0&&d==0))&&(!(d==0&&e==0))&&((e==1&&a==1&&d==1)||(e==0))){ if(a==1){printf("A ");}if(b==1){printf("B ");}if(c==1){printf("C ");}if(d==1){printf("D ");}if(e==1){printf("E ");} } return 0;}草坪喷水插入排序#include<stdio.h> void sort(int a[],int n) {int i;int k;int t;for(i=1;i<n;i++){t=a[i];k=i-1;while(t<a[k]){a[k+1]=a[k];k--;if(k==-1)break;}a[k+1]=t;}}int main(){int n;int a[100];int i;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]); sort(a,n);printf("\n");for(i=0;i<n;i++)if(i==n-1)printf("%d\n",a[i]);else printf("%d ",a[i]);return 0;}查找车牌号#include<stdio.h> #include<math.h>int main(){int i,j,n;for(i=1;i<=9;i++){for(j=0;j<=9;j++){for(n=33;n<=100;n++){if((n*n)==(i*1100+j*11))printf("%d",i*1100+j*11);}}}return 0;}成绩转化乘完倒序尺子刻度大数除法大数减法#include <stdio.h>#include <string.h>#define max(a,b) a>b?a:b#define min(a,b) a>b?b:aint sum[101];void jia(char a[],char b[]){int flag=0,i,len1,len2,lenmax,lenmin;len1=strlen(a),len2=strlen(b);lenmax=max(len1,len2),lenmin=min(len1,len2); for(i=1;i<=lenmax;i++){if(i<=lenmin){sum[lenmax-i]=a[len1-i]+b[len2-i]-'0'-'0'+flag;if(sum[lenmax-i]>=10){sum[lenmax-i]=sum[lenmax-i]-10;flag=1;}else flag=0;}else{if(len1>len2){sum[lenmax-i]=a[len1-i]-'0'+flag;if(sum[lenmax-i]>=10){sum[lenmax-i]=sum[lenmax-i]-10;flag=1;}else flag=0;}else{sum[lenmax-i]=b[len2-i]-'0'+flag;if(sum[lenmax-i]>=10){sum[lenmax-i]=sum[lenmax-i]-10;flag=1;}else flag=0;}}}if(flag==1)printf("1");for(i=0;i<lenmax;i++)printf("%d",sum[i]);printf("\n");}void jian(char a[],char b[]){int flag=0,i;int len1,len2;len1=strlen(a),len2=strlen(b);for(i=1;i<=len1;i++){if(i<=len2){if(a[len1-i]-b[len2-i]-flag>=0){sum[len1-i]=a[len1-i]-b[len2-i]-flag;flag=0;}else{sum[len1-i]=a[len1-i]-b[len2-i]-flag+10;flag=1;}}else{if(a[len1-i]-flag-'0'>=0){sum[len1-i]=a[len1-i]-flag-'0';flag=0;}else{sum[len1-i]=a[len1-i]-flag+10-'0';flag=1;}}}for(i=0;i<len1&&sum[i]==0;i++);for(;i<len1;i++)printf("%d",sum[i]);printf("\n");}void compare(char a[],char b[]){int len1,len2;len1=strlen(a),len2=strlen(b);if(len1>len2||(len1==len2&&strcmp(a,b)>0)) jian(a,b);else if(strcmp(a,b)!=0){printf("-");jian(b,a);}elseprintf("0\n");}int main(){char a[100],b[100];gets(a);gets(b);if(a[0]=='-'&&b[0]!='-'){printf("-");jia(&a[1],b);}else if(a[0]=='-'&&b[0]=='-') compare(&b[1],&a[1]); else if(a[0]!='-'&&b[0]=='-') jia(a,&b[1]);elsecompare(a,b);return 0;}大写变小写#include<stdio.h>#include<string.h>int main(){char s[80];int len,i;gets(s);len=strlen(s);for(i=0;i<len;i++){if(s[i]>='a'&&s[i]<='z')s[i]=s[i]-32;}puts(s);return 0;}到底星期几等比数列#include <stdio.h> #include <stdlib.h> int main(){int m,n,sum;scanf ("%d",&m);for (n=1; ;n++) {sum=(3*n-1)*n/2;if (sum>m)break;}printf ("%d",n);return 0;}分数#include<stdio.h>int main(){int k,x=1,y=1;float a,b;scanf("%d",&k);for(;y<=5000;y++){for(x=y;x<=5000;x++){a=1.0/k;b=1.0/x+1.0/y;if(a==b)printf("1/%d=1/%d+1/%d\n",k,x,y); }}return 0;}韩信点兵#include<stdio.h>int main(){int n,i;for (i=0;;i++) {if (i%5==2&&i%6==3&&i%7==4&&i%11==5) {printf("%d",i);break;}}return 0;}回文字符串#include<stdio.h>#include<string.h>#include<ctype.h>#define MAXN 5000+10char buf[MAXN],s[MAXN];int p[MAXN];int main(){int n,m=0,max=0,x,y;int i,j;fgets(buf,sizeof(s),stdin);n=strlen(buf);for(i=0;i<n;i++){if(isalpha(buf[i])){p[m]=i;s[m++]=toupper(buf[i]);}}for(i=0;i<m;i++){for(j=0;i-j>=0&&i+j<m;j++){if(s[i-j]!=s[i+j])break;if(j*2+1>max){max=j*2+1;x=p[i-j];y=p[i+j];} }for(j=0;i-j>=0&&i+j+1<m;j++){if(s[i-j]!=s[i+j+1])break;if(j*2+2>max){max=j*2+2;x=p[i-j];y=p[i+j+1];} }}for(i=x;i<=y;i++)printf("%c",buf[i]);printf("\n");return 0;}#include<iostream>using namespace std;int main(){char A[5000],B[5000];int a=0,b,c,d,e,f,n=0,m,p,q,C[5000];while((A[a]=cin.get())!='\n') a++;for(b=0,c=0;b<=a-1;b++){if((A[b]>=65&&A[b]<=90)||(A[b]>=97&&A[b]<=122)) {B[c]=A[b],C[c]=b;if(B[c]>=97&&B[c]<=122) B[c]=B[c]-32;c++;}}B[c]=32;for(d=0;d<=c-2;d++){if(B[d]==B[d+1]) e=d,f=d+1,a=1;else if(B[d]==B[d+2]) e=d,f=d+2,a=1;else continue;while(e-1>=0&&f+1<=c&&B[e-1]==B[f+1]) e--,f++; m=f-e;if(m>n) n=m,p=e,q=f;}for(a=C[p];a<=C[q];a++)cout<<A[a]; cout<<endl;}鸡的体重计算数据整数部分加密#include<stdio.h> #include<string.h>int main(){FILE*pi;pi=fopen("in.dat","w");char A[1000],B[1000];int i,n;gets(A);n=strlen(A);for(i=0;i<n;i++){fprintf(pi,"%c",A[i]);if('A'<=A[i]<'Z'||'a'<=A[i]<'z')B[i]=A[i]+1;if(A[i]=='Z'||A[i]=='z')B[i]=A[i]-25;}for(i=0;i<n;i++)printf("%c",B[i]);fclose(pi);return 0;}阶乘#include<stdio.h> int main(){int n;int i=2;int j=1;scanf("%d",&n); while(1){j=j*i;if(j>n) break;i++;}printf("%d\n",i-1); return 0;}卡片恐怖水母#include<stdio.h>void paixu(int A[],int m) {int i=1,n=0,j=0; for(;j<m;j++){for(i=j+1;i<m;i++){if(A[i]<A[j]){n=A[j];A[j]=A[i];A[i]=n;}}}}int main(){int n=0,m=0,A[100]={0},B[100]={0},i=0,j=0,k=0;scanf("%d%d",&n,&m);for(i=0;i<n;i++){scanf("%d",&A[i]);}for(i=0;i<m;i++){scanf("%d",&B[i]);}if(m<n){printf("NULL\n");}{paixu(A,n);paixu(B,m);for(i=0;i<m;i++) {if(A[0]<=B[i]){if(m-i>=n){for(k=0;k<n;k++) {j+=B[i+k];}printf("%d\n",j);}else{printf("NULL\n");}}}}return 0;}快速排序#include<stdio.h>void QuickSort(int A[],int n,int L,int R) {int i,j,t;if(L<R){i=L;j=R+1;while(1){while(i+1<n&&A[++i]<A[L]);while(j-1>-1&&A[--j]>A[L]);if(i>=j)break;t=A[i];A[i]=A[j];A[j]=t;}t=A[L],A[L]=A[j],A[j]=t;QuickSort(A,n,L,j-1);QuickSort(A,n,j+1,R);}}int main(){int A[1000],n,i,j,p;scanf("%d",&n);if(n>=1000) {printf("Overflow!!!") ;return 0; }//输入要排序的元素的数目,若大于1000则结束程序输出“Overflow!!!”for(i=0;i<n;i++)scanf("%d",&A[i]); //输入元素QuickSort(A,n,0,n-1);for(i=n-1;i>=0;i--)printf("%d ",A[i]); //输出排序好的结果return 0;}两人三足#include<stdio.h>int main(){int n,a[50],i,j,t,sum=0;scanf("%d\n",&n);for (i=0;i<n;i++) scanf("%d",&a[i]);for (i=0;i<n;i++) {for (j=0;j<n-i-1;j++) {if (a[j]<a[j+1]) t=a[j],a[j]=a[j+1],a[j+1]=t;}}for (i=0;i<n;i+=2) sum+=a[i];printf("%d",sum);return 0;}逆序输出偶数和#include <stdio.h>#include <stdlib.h>int main(){int n,i,sum=0;scanf("%d",&n);int a[n];for(i=0;i<n;i++){scanf("%d",&a[i]);}for(i=0;i<n;i++){if(i%2==0)sum=sum+a[i];} printf("%d",sum);return 0;}三角形面积士兵移动输出位数#include<stdio.h> int main(){int i,n;scanf("%d",&n); for(i=1;;i++){if(n/10==0)break; else n=n/10;}printf("%d",i);}数列。
西工大2020年4月《C语言程序设计》作业机考参考答案
西工大2020年4月《C语言程序设计》作业机考试卷总分:100 得分:96一、单选题(共35 道试题,共70 分)1. 一个C程序的执行是从()。
A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束正确答案:A2. 在C语言中,只有在使用时才占用内存单元的变量,其存储类型是()。
A.auto和registerB.extern和registerC.auto和staticD.static和register正确答案:A3. 以下存储类型只有在使用时才为该类型变量分配内存的是()。
A.auto和staticB.auto和registerC.register和staticD.static和extern正确答案:B4. 运行程序:#includemain(){int n='c';switch(n++){ default: printf("error");break;case 'a':case 'A':case 'b':case 'B':printf("good");break;case 'c':case 'C':printf("pass");case 'd':case 'D':printf("warn");}}则输出结果是()。
A.goodB.passC.warnD.passwarn。
西工大C语言上机考试题库
1:2:3#include<stdio.h>#include<math.h>int main(){int i=0,j=0,k=0,a=0,b=0,c=0,l=0,m=0,n=0,d=0,p=0,q=0;for(i=1;i<=3;i++){for(j=1;j<=9;j++){if(i!=j){for(k=1;k<=9;k++){if(k!=j&&i!=k){a=i*100+j*10+k;b=a*2;c=a*3;l=b%10,d=c%10;m=(b%100)/10,p=(c%100)/10;n=b/100,q=c/100;if(l!=0&&m!=0&&n!=0&&d!=0&&p!=0&&q!=0)if(i!=l&&i!=m&&i!=n&&j!=l&&j!=m&&j!=n&&k!=l&&k!=m&&k!=n) if(i!=d&&i!=p&&i!=q&&j!=d&&j!=p&&j!=q&&k!=d&&k!=p&&k!=q)if(l!=d&&l!=p&&l!=q&&m!=d&&m!=p&&m!=q&&n!=d&&n!=p&&n!=q)printf("%d %d %d\n",a,b,c);}}}}}return 0;}8#include"stdio.h"int main(){int a,b[10],m=0,n=0,p;int i,j,k;scanf("%d",&a);for(i=1;i<=a;i++){m=0;n=0;p=i;for(j=0;p!=0;j++){b[j]=p%10;p=p/10;}for(k=0;k<j;k++){m=m+b[k];if(b[k]==8){n=1;}}if(m%8==0){printf("%d ",i);continue;}if(i%8==0){printf("%d ",i);continue;}if(n==1){printf("%d ",i);continue;}}return 0;}8的次数A*B#include <stdio.h>#include <string.h>#include <stdlib.h>void cheng(char a[],char b[]){int i,j,ca,cb,*s;ca=strlen(a);cb=strlen(b);s=(int *)malloc(sizeof(int)*(ca+cb));for (i=0;i<ca+cb;i++) s[i]=0;for (i=0;i<ca;i++)for (j=0;j<cb;j++)s[i+j+1]+=(a[i]-'0')*(b[j]-'0');for (i=ca+cb-1;i>=0;i--)if (s[i]>=10){s[i-1]+=s[i]/10;s[i]%=10;}i=0;while(s[i]==0) i++;for (;i<ca+cb;i++) printf("%d",s[i]);printf("\n");free(s);}int main(){char a[100],b[100];gets(a),gets(b);if(a[0]=='-'&&b[0]!='-'){printf("-");cheng(&a[1],b);}else if(a[0]=='-'&&b[0]=='-'){cheng(&a[1],&b[1]);}else if(a[0]!='-'&&b[0]=='-'){printf("-");cheng(a,&b[1]);}elsecheng(a,b);return 0;}N边形面积#include<stdio.h>#include<math.h>#define PI 3.1415926int main(){double s,a;int n;scanf("%d %lf",&n,&a); s=a*a*n/(2*2*tan(PI/n)); printf("%.2lf\n",s); return 0;}参加竞赛#include<stdio.h>int main(){int a,b,c,d,e;for(a=0;a<2;a++)for(b=0;b<2;b++)for(c=0;c<2;c++)for(d=0;d<2;d++)for(e=0;e<2;e++)if(((a==1&&b==1)||(a==0&&b==0))&&((b==0&&c==1)||(b==1&&c==0))&&((c==1&&d==1)||(c==0&&d==0))&&(!(d==0&&e==0))&&((e==1&&a==1&&d==1)||(e==0))) { if(a==1){printf("A ");}if(b==1){printf("B ");}if(c==1){printf("C ");}if(d==1){printf("D ");}if(e==1){printf("E ");} }return 0;}草坪喷水插入排序#include<stdio.h>void sort(int a[],int n){int i;int k;int t;for(i=1;i<n;i++){t=a[i];k=i-1;while(t<a[k]){a[k+1]=a[k];k--;if(k==-1)break;}a[k+1]=t;}}int main(){int n;int a[100];int i;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);sort(a,n);printf("\n");for(i=0;i<n;i++)if(i==n-1)printf("%d\n",a[i]);else printf("%d ",a[i]);return 0;}查找车牌号#include<stdio.h> #include<math.h>int main(){int i,j,n;for(i=1;i<=9;i++){for(j=0;j<=9;j++){for(n=33;n<=100;n++){if((n*n)==(i*1100+j*11))printf("%d",i*1100+j*11);}}}return 0;}成绩转化乘完倒序尺子刻度大数除法大数减法#include <stdio.h>#include <string.h>#define max(a,b) a>b?a:b#define min(a,b) a>b?b:aint sum[101];void jia(char a[],char b[]){int flag=0,i,len1,len2,lenmax,lenmin;len1=strlen(a),len2=strlen(b);lenmax=max(len1,len2),lenmin=min(len1,len2); for(i=1;i<=lenmax;i++){if(i<=lenmin){sum[lenmax-i]=a[len1-i]+b[len2-i]-'0'-'0'+flag;if(sum[lenmax-i]>=10){sum[lenmax-i]=sum[lenmax-i]-10;flag=1;}else flag=0;}else{if(len1>len2){sum[lenmax-i]=a[len1-i]-'0'+flag;if(sum[lenmax-i]>=10){sum[lenmax-i]=sum[lenmax-i]-10;flag=1;}else flag=0;}else{sum[lenmax-i]=b[len2-i]-'0'+flag;if(sum[lenmax-i]>=10){sum[lenmax-i]=sum[lenmax-i]-10;flag=1;}else flag=0;}}}if(flag==1)printf("1");for(i=0;i<lenmax;i++)printf("%d",sum[i]);printf("\n");}void jian(char a[],char b[]){int flag=0,i;int len1,len2;len1=strlen(a),len2=strlen(b);for(i=1;i<=len1;i++){if(i<=len2){if(a[len1-i]-b[len2-i]-flag>=0){sum[len1-i]=a[len1-i]-b[len2-i]-flag;flag=0;}else{sum[len1-i]=a[len1-i]-b[len2-i]-flag+10;flag=1;}}else{if(a[len1-i]-flag-'0'>=0){sum[len1-i]=a[len1-i]-flag-'0';flag=0;}else{sum[len1-i]=a[len1-i]-flag+10-'0';flag=1;}}}for(i=0;i<len1&&sum[i]==0;i++);for(;i<len1;i++)printf("%d",sum[i]);printf("\n");}void compare(char a[],char b[]){int len1,len2;len1=strlen(a),len2=strlen(b);if(len1>len2||(len1==len2&&strcmp(a,b)>0)) jian(a,b);else if(strcmp(a,b)!=0){printf("-");jian(b,a);}elseprintf("0\n");}int main(){char a[100],b[100];gets(a);gets(b);if(a[0]=='-'&&b[0]!='-'){printf("-");jia(&a[1],b);}else if(a[0]=='-'&&b[0]=='-')compare(&b[1],&a[1]);else if(a[0]!='-'&&b[0]=='-')jia(a,&b[1]);elsecompare(a,b);return 0;}大写变小写#include<stdio.h>#include<string.h>int main(){char s[80];int len,i;gets(s);len=strlen(s);for(i=0;i<len;i++){if(s[i]>='a'&&s[i]<='z')s[i]=s[i]-32; }puts(s);return 0;}到底星期几等比数列#include <stdio.h>#include <stdlib.h>int main(){int m,n,sum;scanf ("%d",&m);for (n=1; ;n++) {sum=(3*n-1)*n/2; if (sum>m) break;}printf ("%d",n);return 0;}分数#include<stdio.h> int main(){int k,x=1,y=1;float a,b;scanf("%d",&k);for(;y<=5000;y++){for(x=y;x<=5000;x++){a=1.0/k;b=1.0/x+1.0/y;if(a==b)printf("1/%d=1/%d+1/%d\n",k,x,y);}}return 0;}韩信点兵#include<stdio.h>int main(){int n,i;for (i=0;;i++) {if (i%5==2&&i%6==3&&i%7==4&&i%11==5) {printf("%d",i);break;} }return 0;}回文字符串#include<stdio.h>#include<string.h>#include<ctype.h>#define MAXN 5000+10 char buf[MAXN],s[MAXN]; int p[MAXN];int main(){int n,m=0,max=0,x,y;int i,j;fgets(buf,sizeof(s),stdin);n=strlen(buf);for(i=0;i<n;i++){if(isalpha(buf[i])){p[m]=i;s[m++]=toupper(buf[i]);}}for(i=0;i<m;i++){for(j=0;i-j>=0&&i+j<m;j++){if(s[i-j]!=s[i+j])break;if(j*2+1>max){max=j*2+1;x=p[i-j];y=p[i+j];} }for(j=0;i-j>=0&&i+j+1<m;j++){if(s[i-j]!=s[i+j+1])break;if(j*2+2>max){max=j*2+2;x=p[i-j];y=p[i+j+1];} }}for(i=x;i<=y;i++)printf("%c",buf[i]);printf("\n");return 0;}#include<iostream>using namespace std;int main(){char A[5000],B[5000];int a=0,b,c,d,e,f,n=0,m,p,q,C[5000];while((A[a]=cin.get())!='\n') a++;for(b=0,c=0;b<=a-1;b++){if((A[b]>=65&&A[b]<=90)||(A[b]>=97&&A[b]<=122)){B[c]=A[b],C[c]=b;if(B[c]>=97&&B[c]<=122) B[c]=B[c]-32;c++;}}B[c]=32;for(d=0;d<=c-2;d++){if(B[d]==B[d+1]) e=d,f=d+1,a=1;else if(B[d]==B[d+2]) e=d,f=d+2,a=1;else continue;while(e-1>=0&&f+1<=c&&B[e-1]==B[f+1]) e--,f++;m=f-e;if(m>n) n=m,p=e,q=f;}for(a=C[p];a<=C[q];a++)cout<<A[a];cout<<endl;}鸡的体重计算数据整数部分加密#include<stdio.h>#include<string.h>int main(){FILE*pi;pi=fopen("in.dat","w");char A[1000],B[1000];int i,n;gets(A);n=strlen(A);for(i=0;i<n;i++){fprintf(pi,"%c",A[i]);if('A'<=A[i]<'Z'||'a'<=A[i]<'z')B[i]=A[i]+1;if(A[i]=='Z'||A[i]=='z')B[i]=A[i]-25;}for(i=0;i<n;i++)printf("%c",B[i]);fclose(pi);return 0;}阶乘#include<stdio.h>int main(){int n;int i=2;int j=1;scanf("%d",&n); while(1){j=j*i;if(j>n) break;i++;}printf("%d\n",i-1); return 0;}卡片恐怖水母#include<stdio.h>void paixu(int A[],int m){int i=1,n=0,j=0;for(;j<m;j++){for(i=j+1;i<m;i++){if(A[i]<A[j]){n=A[j];A[j]=A[i];A[i]=n;}}}}int main(){int n=0,m=0,A[100]={0},B[100]={0},i=0,j=0,k=0;scanf("%d%d",&n,&m);for(i=0;i<n;i++)scanf("%d",&A[i]); }for(i=0;i<m;i++){scanf("%d",&B[i]); }if(m<n){printf("NULL\n");}else{paixu(A,n);paixu(B,m);for(i=0;i<m;i++) {if(A[0]<=B[i]){if(m-i>=n){for(k=0;k<n;k++) {j+=B[i+k];}printf("%d\n",j);}else{printf("NULL\n");}break;}}}return 0;}快速排序#include<stdio.h>void QuickSort(int A[],int n,int L,int R) {int i,j,t;if(L<R){i=L;j=R+1;while(1){while(i+1<n&&A[++i]<A[L]);while(j-1>-1&&A[--j]>A[L]);if(i>=j)break;t=A[i];A[i]=A[j];A[j]=t;}t=A[L],A[L]=A[j],A[j]=t;QuickSort(A,n,L,j-1);QuickSort(A,n,j+1,R);}}int main(){int A[1000],n,i,j,p;scanf("%d",&n);if(n>=1000) {printf("Overflow!!!") ;return 0; }//输入要排序的元素的数目,若大于1000则结束程序输出“Overflow!!!”for(i=0;i<n;i++)scanf("%d",&A[i]); //输入元素QuickSort(A,n,0,n-1);for(i=n-1;i>=0;i--)printf("%d ",A[i]); //输出排序好的结果return 0;}两人三足#include<stdio.h>int main(){int n,a[50],i,j,t,sum=0;scanf("%d\n",&n);for (i=0;i<n;i++) scanf("%d",&a[i]);for (i=0;i<n;i++) {for (j=0;j<n-i-1;j++) {if (a[j]<a[j+1]) t=a[j],a[j]=a[j+1],a[j+1]=t;}}for (i=0;i<n;i+=2) sum+=a[i];printf("%d",sum);return 0;}逆序输出偶数和#include <stdio.h>#include <stdlib.h>int main(){int n,i,sum=0;scanf("%d",&n);int a[n];for(i=0;i<n;i++){scanf("%d",&a[i]);}for(i=0;i<n;i++){if(i%2==0)sum=sum+a[i];} printf("%d",sum);return 0;}三角形面积士兵移动输出位数#include<stdio.h>int main(){int i,n;scanf("%d",&n);for(i=1;;i++){if(n/10==0)break;else n=n/10;}printf("%d",i);}数列#include<stdio.h>int main(){int A[10],B[5],i;double C[5];for(i=0;i<5;i++)scanf("%d",&A[i]);for(i=0;i<4;i++){B[i]=A[i+1]-A[i];C[i]=(double)A[i+1]/A[i];}if(B[0]==B[1]&&B[1]==B[2]&&B[2]==B[3]){for(i=5;i<10;i++)A[i]=A[i-1]+B[0],printf("%d ",A[i]);return 0;}if(C[0]==C[1]&&C[1]==C[2]&&C[2]==C[3]){for(i=5;i<10;i++)A[i]=A[i-1]*C[0],printf("%d ",A[i]);return 0;}if((A[0]+A[1]==A[2])&&(A[1]+A[2]==A[3])&&(A[2]+A[3]==A[4])){ for(i=5;i<10;i++)A[i]=A[i-1]+A[i-2],printf("%d ",A[i]);return 0;}printf("NULL");return 0;}数字加密数组元素和水仙花数提取字符串#include <stdio.h>#include<string.h>int main(){char A[100];char l[100];gets(A);int m,n,i,j;scanf("%d",&m);n=strlen(A);for (i=m;i<n;i++){l[i]=A[i];}for (j=m;j<n;j++){printf("%c",l[j]);}printf("\n");return 0;}添加行号#include<stdio.h>#include<string.h>int main(){char A[3][100],B[3][100];int i;FILE*fp;fp=fopen("b.c","w");for(i=0;i<3;i++)gets(A[i]);fprintf(fp,"0001 ");fputs(A[0],fp);fprintf(fp,"\n""0002 ");fputs(A[1],fp);fprintf(fp,"\n""0003 ");fputs(A[2],fp);fprintf(fp,"\n");fclose(fp);printf("0001 ");puts(A[0]);printf("0002 ");puts(A[1]);printf("0003 ");puts(A[2]);return 0;}舞伴配对相乘后位数相加#include <stdio.h>int main(){int k;long a,b;scanf("%ld%ld",&a,&b);if(a==0||b==0)printf("0\n");else{k=(a%9)*(b%9)%9;if(k==0)printf("9\n");elseprintf("%d\n",k);}return 0;}#include <iostream>using namespace std;int main(){char A[13],B[13];int a=0,b=0,c,d,e,f,m=0,X[13],Y[13]; for(c=0;c<=12;c++)X[c]=0,Y[c]=0;while((A[a]=cin.get())!=32) a++; while((B[b]=cin.get())!='\n') b++; for(c=0,a--;a>=0;a--,c++)X[c]=A[a]-48;for(d=0,b--;b>=0;b--,d++)Y[d]=B[b]-48;for(e=0;e<=c-1;e++)for(f=0;f<=d-1;f++)m=m+X[e]*Y[f];while(m>10){a=m%10,m=(m-a)/10+a; }cout<<m<<endl;return 0;}销售记录#include<stdio.h>#include<string.h>typedef struct tagME{char a0[5];char a1[11];char a2[20];int a3;int a4;}tag;int main(){ tag a[100],b[100];int n,i,j=1,k=0;FILE *fp;scanf("%d",&n);for(i=0;i<=n-1;i++){scanf("%s %s %s %d %d",a[i].a0,a[i].a1,a[i].a2,&a[i].a3,&a[i].a4);} fp=fopen("out.dat","w");if(fp!=NULL){for(j=0;j<=n-1;j++){fscanf(fp,"%s%s%s%d%d",a[j].a0,a[j].a1,a[j].a2,&a[j].a3,&a[j].a4);}for(i=0;i<=n-2;i++){if(a[i].a4>=a[i+1].a4)b[0]=a[i],a[i]=a[i+1],a[i+1]=b[0];}printf("%s %s %s %d %d",a[i].a0,a[i].a1,a[i].a2,a[i].a3,a[i].a4);fclose(fp);}return 0;}星期几星座#include <stdio.h>int main(){int a,b;scanf("%d%d",&a,&b);switch (a){case 1:if(b<=19)printf("Capricorn");else printf("Aquarius");break;case 2:if(b<=18)printf("Aquarius");else printf("Pisces");break;case 3:if(b<=20)printf("Pisces");else printf("Aries");break;case 4:if(b<=20)printf("Aries");else printf("Taurus");break;case 5:if(b<=20)printf("Taurus");else printf("Gemini");break;case 6:if(b<=21)printf("Gemini");else printf("Cancer");break;case 7:if(b<=22)printf("Cancer");else printf("Leo");break;case 8:if(b<=22)printf("Leo");else printf("Virgo");break;case 9:if(b<=22)printf("Virgo");else printf("Libra");break;case 10:if(b<=22)printf("Libra");else printf("Scorpio");break;case 11:if(b<=21)printf("Scorpio");else printf("Sagittarius");break;case 12:if(b<=21)printf("Sagittarius");else printf("Capricorn");break;}return 0;}幸运数学号循环移位#include <stdio.h>int move(int value,int n){if(n<0){n=-n;value=(value<<n|value>>(32-n));}elsevalue=(value>>n|value<<(32-n));return(value);}int main(){int x,y;scanf("%d %d",&x,&y);printf("%d\n",move(x,y));return 0;}月份天数#include <stdio.h>int main(){int y,m,d;int A[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};int B[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};scanf("%d%d",&y,&m);if((y%4==0&&y%100!=0)||(y%400==0))d=A[m];elsed=B[m];printf("%d",d);return 0; }月份转换英语运费职工信息字符串替换#include<stdio.h> #include<string.h> int main(){char A[100],B[100];int i;gets(A);for(i=0;i<100;i++){if(A[i]=='y'&&A[i+1]=='o'&&A[i+2]=='u') {A[i]='w';A[i+1]='e';A[i+2]=' ';}}for(i=0;A[i]!='\0';i++){if(A[i-2]=='w'&&A[i-1]=='e'&&A[i]==' ') continue;elseprintf("%c",A[i]);}printf("\n");return 0;}字符串长度字符输出#include<stdio.h>#include<string.h>int main(){char A[200],B[200];int p,n,i,j=0;gets(A);scanf("%d%d",&p,&n);for(i=p;i<=p+n-1;i++,j++){B[j]=A[i];}puts(B);}。
C语言课后实验设计题目及答案
C语⾔课后实验设计题⽬及答案C语⾔实验题⽬及答案1、实验项⽬⼀ C程序的编辑、编译、连接和运⾏题⽬:编写程序,要求屏幕上显⽰如下信息:***********************This is a C program .***********************程序:#includevoid main(){printf(“***********************\n”);printf(“This is a C programn .\n”);printf(“***********************\n”);}实验项⽬⼆数据类型、运算符、表达式题⽬(1)程序填空:输⼊1 个实数x,计算并输出其平⽅根(保留1 位⼩数)。
填空1.double x,root;2.root=sqrt(x);(2)输⼊⼀个⼤写英⽂字母,输出相应的⼩写字母。
填空1.ch=ch+32;1、#include "stdafx.h"#include "stdio.h"#include "math.h"int main(int argc, char* argv[]){printf("This is a Cprogram\n");return 0;}#include "math.h"int main(int argc, char* argv[]) {double x;printf("x=");scanf("%lf",&x);printf("%lf\n",sqrt(x));return 0;}2、实验项⽬三顺序结构程序设计题⽬(1)编写程序,输⼊三⾓形的三边长a、b、c,求三⾓形⾯积area。
(2)设圆半径r=1.5,圆柱⾼h=3,求圆周长、圆⾯积、圆球表⾯积、圆球体积、圆柱体积。
C语言实验题及参考答案
实验一1、计算整数各位数字之和(10 分)输入一个3 位正整数,将其每一位的数字相加,输出和输入格式:输入一个3 位正整数。
变量数据类型为unsigned 。
输出格式:输出整数每一位相加后的整数和。
输入样例:输出样例:【参考答案】#include "" int main(){ unsigned int a,ge,shi,bai,sum;scanf("%d",&a);ge=a%10;shi=a/10%10;bai=a/100;sum=ge+shi+bai;printf("%d\n",sum);return 0;}2、计算代数表达式(10 分)求:输入格式:输入角度x。
变量数据类型为double 。
π 为。
输出格式:输出y 的值,精确到小数点后2 位。
输入样例:输出样例:【参考答案】#include <>#include <>#define PIint main(){double x,y;scanf("%lf",&x); y=sqrt((sin(60*PI/180)+1)*(sin(30*PI/180)+1)/cos(x*PI/180));printf("%.2lf",y);return 0;}3、逆序的三位数 (10 分)程序每次读入一个正3 位数,然后输出按位逆序的数字。
有结尾的0 时,输出不应带有前导的0。
比如输入700,输入格式:每个测试是一个3 位的正整数。
输出格式:输出按位逆序的数。
输入样例:输出样例:注意:当输入的数字含输出应该是7。
【参考答案】#include ""int main(){ int a,ge,shi,bai,b;scanf("%d",&a);ge=a%10;shi=a/10%10;bai=a/100;b=ge*100+10*shi+bai;printf("%d\n",b);return 0;}4、求整数均值 (10 分)本题要求编写程序,计算4 个整数的和与平均值。
C语言实验报告 实验三 参考答案
实验十 参考答案(指针)三、实验内容( 按要求完善或设计以下程序,并调试分析运行结果)1. 程序填空题 给定程序BLACK10-1.C 中,函数fun 的功能是:将形参n 所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n 传回所指变量。
例如,输入一个数:27638496,新的数:为739。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
【解题思路】第一处:t 是通过取模的方式来得到*n 的个位数字,所以应填:10。
第二处:判断是否是奇数,所以应填:0。
第三处:最后通形参n 来返回新数x ,所以应填:x 。
2. 程序改错题 给定程序MODI10-1.C 中函数fun 的功能是: 计算n 的5次方的值(规定n 的值大于2、小于8),通过形参指针传回主函数;并计算该值的个位、十位、百位上数字之和作为函数值返回。
例如,7的5次方是16807, 其低3位数的和值是15。
【解题思路】第一处:变量d 的初始值应为1。
第二处:整除的符号是 /。
3. 程序设计题 请编写函数fun ,它的功能是:求出能整除形参x 且不是偶数的各整数,并按从小到大的顺序放在pp 所指的数组中,这些除数的个数通过形参n 返回。
例如,若 x 中的值为: 35,则有 4 个数符合要求,它们是: 1, 5, 7, 35。
【解题思路】本题是求出能整除形参x 且不是偶数的各整数,并按从小到大的顺序放在pp 所指的数组中,这些除数的个数通过形参n 返回。
【参考答案】void fun ( int x, int pp[], int *n ){ int i; *n=0;for(i=1; i <= x; i++)if((x % i== 0) && (i % 2)) pp[(*n)++]=i;}4. 程序填空题 给定程序中,函数fun 的功能是:找出N ×N 矩阵中每列元素中的最大值,并按顺序依次存放于形参b 所指的一维数组中。
西工大2021年4月机考《C语言程序设计》作业参考答案
西工大2021年4月机考《C语言程序设计》作业参考答案试卷总分:100 得分:100本科目3次作答机会,每次试题内容相同,只是题目和选项顺序是随机调整的,大家可放心下载使用一、单选题(共35 道试题,共70 分)1. 以下错误的描述为()。
A.在函数之外定义的变量称为外部变量,外部变量是全局变量B.在一个函数中既可以使用本函数中的局部变量,又可以使用外部变量C.外部变量定义和外部变量声明的含义相同D.若在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用正确答案:C2. 有以下程序#includemain(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0:a++; break;case 1:b++; break;}case 2:a++; b++; break;case 3:a++; b++;}printf("a=%d,b=%d\n",a,b);}A.a=1,b=0B.a=2,b=2C.a=1,b=1D.a=2,b=1正确答案:D3. 以下叙述中错误的是()。
A.计算机不能直接执行用C语言编写的源程序B.C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C.后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D.后缀为.obj和.exe的二进制文件都可以直接运行正确答案:D4. 若二维数组a由m列,则在a[i][j]之前的元素个数为()。
A.j*m+iB.i*m+jC.i*m+j-1D.i*m+j+1正确答案:B5. 有以下程序main(){ int i,s=1;for (i=1;i<50;i++)if(!(i%5)&&!(i%3)) s+=i;printf("%d\n",s);A.409B.277C.1D.91正确答案:D6. 若a为int类型,且其值为5,则执行表达式a+=a-=a*a后,a的值是()。
西工大2020年4月《C语言程序设计》作业机考参考答案
西工大2020年4月《C语言程序设计》作业机考试卷总分:100 得分:96一、单选题(共35 道试题,共70 分)1. 一个C程序的执行是从()。
A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束正确答案:A2. 在C语言中,只有在使用时才占用内存单元的变量,其存储类型是()。
A.auto和registerB.extern和registerC.auto和staticD.static和register正确答案:A3. 以下存储类型只有在使用时才为该类型变量分配内存的是()。
A.auto和staticB.auto和registerC.register和staticD.static和extern正确答案:B4. 运行程序:#includemain(){int n='c';switch(n++){ default: printf("error");break;case 'a':case 'A':case 'b':case 'B':printf("good");break;case 'c':case 'C':printf("pass");case 'd':case 'D':printf("warn");}}则输出结果是()。
A.goodB.passC.warnD.passwarn正确答案:D5. 下面程序的输出结果是()。
main(){int x=177;printf("%o\n",x);A.177B.261C.-61D.61正确答案:B6. 若二维数组a由m列,则在a[i][j]之前的元素个数为()。
