c
隔壁郑同学
人生苦短,我要赚钱
展开
-
编写函数long fun(int high,int n),功能是:计算并返回high以内(不包含high)最大的n个素数之和。若不足n个,则到最小素数2为止。例如:若high=100,n=10,则函数
long fun(int high,int n){ int i,j,count=0,sum=0; int q=sqrt(high); for (i=high-1;i>=2;i--) { for (j=q;j>1;j--) { if (i%j==0 && i>j)//注意,&&后面的条件,负责会把素因子漏掉 break; }原创 2020-12-19 23:06:55 · 1408 阅读 · 0 评论 -
请编写函数int funint a,int n,它的功能是把形参a所指数组中的偶数按原顺序依次存放到a0a1a2中,把奇数从数组中删除,偶数个数通过函数值返回,以-1作为有效数据的结束标志例若输入1
#include<stdio.h>#define N 9int fun (int a[], int n){ int i, j; j=0; for (i=0; i<n; i++) /**********found**********/ if (a[i]%2== 1) { /**********found**********/ a[j]=a[i]; j++; } /**原创 2020-12-16 23:01:38 · 3604 阅读 · 0 评论 -
给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。例如,若N=5,有下列矩阵:
#include <stdio.h>#define N 4void fun(int t[N][N] ){ int i, j; for(i=1; i<N; i++) {for(j=0; j<i; j++) { t[i][j] =t[i][j]+t[j][i]; t[j][i] =0; } }}main(){ int t[][N]={21,12,13,24,25,16,47,38,29原创 2020-12-15 13:04:38 · 3949 阅读 · 0 评论 -
函数void fun(int x,char * p)实现十进制整数x到二进制的转换。转换后的二进制数以字符串的方式放置于p所指向的数组中。如输入13,输出1101,输入-13,输出-1101。
#include<stdio.h>void fun(int x,char *p){ int i=0,j,t=x; char q[18]={0}; for(i=0;t!=0;i++) { if(t%2==1) q[i]='1'; else q[i]='0'; t=t/2; }//输出到p for(j=0;i>0;j+原创 2020-12-13 15:52:31 · 534 阅读 · 0 评论 -
编写函数int fun(char (*ss)[N],int m,char *s),功能是:形参ss指向一个m行N列的二维字符数组,每行存放一个字符串。求出最大的字符串,复制到s所指的字符数组中,然后返
#include <stdio.h>#include <string.h>#define N 50int fun(char (*ss)[N],int m,char *s){ int i; //char p[N]; strcpy(s,*ss); for (i=1;i<m;i++) { if (strcmp(s,*(ss+i))<0) { strcpy(s,*(ss+i).原创 2020-12-12 16:07:06 · 1000 阅读 · 0 评论 -
给定程序中,函数void fun(char *s)的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:def3*5
#include<stdio.h>void fun(char *s){ int i,j,n;for(i=0;s[i]!='\0';i++)//当i已经指向字符串末尾'\0'时退出FOR循环if(s[i]>='0'&&s[i]<=9){n=0;while(s[i+1+n]!='\0') n++;//统计i之后的字符串长度并放入Nfor(j=i+n+1;j>i;j--)//根据长度N来进行i后的字符串的移位(都向右移一位)s[j+1]= s[j];原创 2020-12-10 21:13:20 · 2697 阅读 · 3 评论 -
给定程序中,函数void fun(char *s)的功能是:把形参s所指字符串中下标为偶数的字符右移到下一个偶数位置,最右边被移出字符串的字符绕回放到第一个偶数位置,下标为奇数的字符不动(注:字符串的
#include<stdio.h>void fun(char *s){ int i; char c; for (i=1;s[i]!='\0';i++) { if (i%2==0) { c=s[0]; s[0]=s[i]; s[i]=c; } }} main(){char str[80]; gets(str); fun(st原创 2020-12-09 09:43:53 · 3055 阅读 · 0 评论 -
编写函数void fun(char *s1,char *s2),功能是:对形参s1所指字符串升序排序,并将排序后下标为偶数的字符取出,写入形参s2所指字符数组中,形成一个新串。例如,下面程序若输入:T
#include<stdio.h>#include<stdlib.h>#include<string.h>void fun(char *s1,char *s2){int i,j,l;char p;l=strlen(s1);for(i=0;i<l;i++){for(j=0;j<i;j++)if(*(s1+j)>*(s1+j+1)){p=*(s1+j);*(s1+j)=*(s1+j+1);*(s1+j+1原创 2020-12-08 11:40:04 · 1688 阅读 · 1 评论 -
函数void fun(char s[])的功能是:将s所指字符串中ASCII值为奇数的字符删除。例如,若s所指字符串中的内容为:“ABCDEFG12345”,其中字符A的ASCII码值为奇数、…、字符
#include<stdio.h>void fun(char s[]){ int i,j;for(i=0;s[i]!='\0';i++)if(s[i]%2!=0){for(j=i;s[j]!='\0';j++)s[j]=s[j+1];i--;}}int main(){char a[80];gets(a);fun(a);puts(a);}原创 2020-12-07 12:08:25 · 2119 阅读 · 0 评论 -
请编写一个函数int fun(long int x),它的功能是:判断整数x是否是同构数。若是同构数,函数返回1;否则返回0。所谓“同构数”是指这样的数,它出现在它的平方数的右边。例如:输入整数5,5
#include<stdio.h>int fun(long int x){long m,a;for(a=10; ;a*=10){m=x*x%a;if(x==m) return(1);if(x*x/a==0) return(0);}}main(){int x;scanf("%d",&x);if(fun(x)==1)puts("Yse");else puts("No");}原创 2020-12-06 22:42:36 · 3446 阅读 · 0 评论 -
编写取子字符串函数void fun(char s1[],char s2[],int m,int n),其作用是将字符数组s2中从第m个字符开始的共n个字符拷贝到数组s1中;若s2中剩余字符不足n个,则
#include<stdio.h>#include<string.h>void fun(char s1[],char s2[],int m,int n){int i,a,b;a=strlen(s2);b=(a<m+n-1?a:m+n-1);for(i=m-1;i<b;i++){*s1=*(s2+i);s1++;}*s1='\0';}main(){static char a[100],b[100];int s,len;void原创 2020-12-05 15:55:04 · 2114 阅读 · 1 评论 -
编写函数void fun(char *str),将参数字符串中各单词首字母变大写,其余字母变小写。输入输出在main中实现。如输入“you HAVE 10 books,don‘t you? “ 输出
#include<stdio.h>void fun(char *str){int i,j;for(i=0;str[i];i++)if(str[i]>='A'&&str[i]<='Z')str[i]+=32;if(str[0]>='a'&&str[0]<='z')str[0]-=32;for(i=1;str[i];i++)if(str[i]==' '||str[i]==','||str[i]=='.'){if(str原创 2020-12-02 23:34:05 · 1710 阅读 · 0 评论 -
n个整数,前面各数循环顺序后移m个位置,最后m个数变成最前面m个数。写函数void fun(int *p,int n,int m),实现上述功能。在main()中输入与输出。如下面程序输出7 8 9
#include<stdio.h>void fun(int *p,int n,int m){int i,j;for(i=1;i<m;i++){for(j=n-1;j>=0;j--)*(p+j+1)=*(p+j);*(p+0)=*(p+n);}}main(){void fun(int *,int ,int );int x[10]={1,2,3,4,5,6,7,8,9,10},i;fun(x,10,14);for(i=0;i<10原创 2020-12-01 17:44:55 · 1003 阅读 · 0 评论 -
编写函数void fun(char *s1,char *s2),实现字符串s1与s2的交叉连接,连接后得到的新字符串放在s1中。如输入abc12345,输出a1b2c345,若输入abcde123,则
#include<stdio.h>#include<string.h>void fun(char *s1,char *s2){int i,j,k;for(j=0,i=1;s2[j]!='\0';){for(k=strlen(s1);k>=i;k--)s1[k+1]=s1[k];s1[i]=s2[j];j++;i++;if(s1[i]) i++;}}main(){char a[100],b[100];void fun(char原创 2020-11-30 14:04:30 · 2875 阅读 · 1 评论 -
传说可以根据两个人的生日来计算其缘分.方法:将两个人的生日各位相加,将得到的数再一次各位相加,直到其值为一个一位数,此数即代表两个人的缘分.例如,两个生日为:19820523,19841111,则各位
#include<stdio.h>int fun(long x,long y){long sum=0,m;for(m=x+y;m>0||sum>=10;){ sum+=m%10;m/=10;if(m==0&&sum>=10){m=sum;sum=0;}}return(sum);}main(){long x,y;int k;scanf("%ld%ld",&x,&y);k=fun(x原创 2020-11-29 22:34:52 · 2383 阅读 · 0 评论 -
n个人围成一圈,1,2,3循环报数,报到3的人退出。到最后只余1人,输出最后留下的是第几号(最初的序号,以1起始)。若n=6,则输出1;若n=10,则输出4;若n=100,则输出91。函数int fu
#include<stdio.h>int fun(int n ,int *p){ int i,j,s[100],k=0,t=0; for(i=0;i<n;i++) s[i]=i+1; for(i=0;t<n;i++){ for(j=0;j<n;j++) if(s[j]!=0){ k++; if(k%3==0){ p[t]=s[j]; t++; s[j]=0; } } k=k%3; } ret原创 2020-11-28 17:13:16 · 712 阅读 · 0 评论 -
编写函数long fun(long x),将长整型参数x中每一位上为偶数的数依次取出,构成一个新数返回. 例如:下面程序运行时输入:124578902,程序输出:24802.
#include<stdio.h>long fun(long x){int n=10,m=0;while (x){int t=x%10;if(t%2==0){m+=t*n/10;n*=10;}x/=10;}return m;}void main(){ long a,b;printf("Enter a number:");scanf("%ld",&a);b=fun(a);printf("b=%ld\n",b);}原创 2020-11-27 10:55:24 · 2803 阅读 · 3 评论 -
原码一位乘法
#include <stdio.h>void readBin(char bin[], int n);void printBin(char bin[], int n);void mulBin(char x[],char y[],char c[], int n);void printlnBin(char bin[], int n);void printLine();void printC(char c[],int n);void prompt();int main(){ char原创 2020-11-23 10:27:30 · 904 阅读 · 0 评论 -
c语言题库
c 1 C语言程序的基本单位是__________ A) 程序行 B) 语句 C) 函数 D) 字符 C 2 C语言程序的三种基本结构是__________ A、顺序结构,选择结构,循环结构 B、递归结构,循环结构,转移结构 C、嵌套结构,递归结构,顺序结构 D、循环结构,转移结构,顺序结构 A 3 C语言规定,程序中各函数之间 A) 既允许直接递归调用也允许间接递归调用 B) 不允许直接递归调用也不允许间接递归调用 C) 允许直接递归调用不允许间接递归调用 D) 不允许直接递归调用允许间接递归调用 A 4原创 2020-11-22 18:03:32 · 9439 阅读 · 0 评论 -
下面程序的运行结果是_____. main() { int a[6][6],i,j; for(i=1;i<6;i++) for(j=1;j<6;j++)
下面程序的运行结果是_____.main(){ int a[6][6],i,j;for(i=1;i<6;i++)for(j=1;j<6;j++)a[i][j]=(i/j)*(j/i);for(i=1;i<6;i++){ for(j=1;j<6;j++)printf("%2d",a[i][j]);printf("\n"); } }A)11111 B)00001 C)10000 D)1000111111 0原创 2020-11-21 17:04:10 · 9385 阅读 · 4 评论 -
若有以下程序段: int a[]={4,0,2,3,1}, i,j,t; for(i=1;i<5;i++) { t=a[i]; j=i-1; while(j>=0&&t>a[j])
若有以下程序段:int a[]={4,0,2,3,1}, i,j,t;for(i=1;i<5;i++){ t=a[i]; j=i-1;while(j>=0&&t>a[j]){ a[j+1]=a[j]; j–; }…则该程序段的功能是 _____.A)对数组a进行插入排序(升序)B)对数组a进行插入排序(降序)C)对数组a进行选择排序(升序)D)对数组a进行选择排序(降序)Bint a[ ]={4,0,2,3,1,},i,j,t;for(i=原创 2020-11-21 10:35:31 · 4443 阅读 · 0 评论 -
下面程序段的运行结果是: for(y=1;y<10;) y=((x=3*y,x+1),x-1); printf(“x=%d,y=%d“,x,y); A)x=27,y=27 B)x=12,y=
下面程序段的运行结果是: for(y=1;y<10;) y=((x=3*y,x+1),x-1); printf(“x=%d,y=%d”,x,y); A)x=27,y=27 B)x=12,y=13 C)x=15,y=14 D)x=y=27逗号表达式注意两个bai基本知识:1.逗号表达式的运算i顺序是从左向右运算2.逗号表达式的值取逗号中最右表达式的值第一个循环:(x=0,y=1)现在看(x=3y,x+1),x-1这个逗号表达式,首先对于(x=3y,x+1)和x-1来原创 2020-11-20 16:39:22 · 7651 阅读 · 0 评论 -
若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是: A)scanf(“ %d%lx,%le“,&x,&y,&z); B)scanf(“%2d * %d%lf“,&
若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是:A)scanf(" %d%lx,%le",&x,&y,&z);B)scanf("%2d * %d%lf",&x,&y,&z);C)scanf("%x %* d%o",&x,&y);D)scanf("%x%o%6.2f",&x,&y,&z);scanf格式必须bai与输入类型一直du。A、%d整型,%lx十六进制zhi长整形原创 2020-11-20 09:28:20 · 17859 阅读 · 1 评论 -
printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度小于5,则输出按方式。 A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左
printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度小于5,则输出按方式。A)从左起输出该字串,右补空格B)按原字符长从左向右全部输出C)右对齐输出该字串,左补空格D)输出错误信息C...原创 2020-11-20 09:21:39 · 11301 阅读 · 3 评论 -
设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五人运算的表达式是: A) n=(n*100+0.5)/100.0 B)m=n*100+0.5
设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五人运算的表达式是:A) n=(n100+0.5)/100.0 B)m=n100+0.5 ,n= m/100.0C) n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.0B原创 2020-11-20 09:14:19 · 4339 阅读 · 1 评论 -
编写函数void fun(int k,int *p),功能是:将参数k(2≤k≤32767)所有的不相同质因子升序写入p所指的一维数组中,以-1作为所有质因子的结束标志。例如:下面程序运行时若输入20
#include<stdio.h>void fun(int k,int *p){int j=2,n=0;do{if (k%j==0){p[n]=j;n++;}while(k%j==0){k=k/j;}j++;}while (j<=k);p[n]=-1;}int main(){int x,a[17],i;do{printf("Enter a number(2-32767):");scanf ("%d",&x);}while(x&原创 2020-11-18 17:26:02 · 623 阅读 · 0 评论 -
‘若有说明:int i,j=7, *p=&i;,则与i=j;等价的语句是 A) i= *p; B) *p=*&j; C) i=&j; D) i=* *p;
解:选B。解析:题中说,定义整型变量i和j,并且初始化了把7赋值给变量j。 p=&i是说使整形指针变量p指向了变量i的地址(即变量p中存储了变量i的地址)。i=j是说给7的值赋给变量i,即i的值为7.与之等价,那就是同样是赋值表达式,B答案 p=&j;中&j是取地址,&j表示取地址中的值,即为7,赋给变量p里的值(即是i)...原创 2020-11-15 19:01:31 · 6425 阅读 · 0 评论 -
数组x中保存有n个整数, 编写函数int fun(int *x,int n,float *w),对数组x进行如下操作:从第0个元素起对每5个元素求一个平均埴,并将这些均值依次存放在w所指的数组中。函数
#include<stdio.h>int fun(int *x,int n,float *w){ int i,j,num,sum; num=n/5; for(i=0;i<=num;i++){ for(j=5*(i-1),sum=0;j<5*i;j++){ sum+=x[j]; } w[i-1]=sum/5.0; } return num; } main(){int a[30],i,n,m; float b[6];printf("Input原创 2020-11-15 17:47:58 · 471 阅读 · 0 评论 -
‘请选出以下程序的输出结果 A) 1 2 3 4 B) 4 3 2 1 C) 0 0 0 0 D) 4 4 4 4
'请选出以下程序的输出结果 A) 1 2 3 4 B) 4 3 2 1 C) 0 0 0 0 D) 4 4 4 4main(){ int a[ ]={ 1,2,3,4 },i;int x=0;for(i=0; i<4; i++){ sub(a,x); printf("%d",x);}printf("\n");}sub(int *s,int y){ static int t=3;y=s[t]; t–;}解析:首先看下面这个函数:for(i=0; i<4原创 2020-11-14 18:13:03 · 1246 阅读 · 0 评论 -
strlen计算长度
'以下程序段的输出结果是 A) 9 B) 12 C) 13 D) 14char s[]="\141\141abc\t";printf ("%d\n",strlen(s));\算一个转义字符,代表1算一个字符4算一个字符1算一个字符\141算一个转义字符a算一个字符b算一个字符c算一个字符\t算一个转义字符,代表横向跳格...原创 2020-11-11 22:19:07 · 1724 阅读 · 0 评论 -
编写函数int fun(int x,long int y),功能:计算满足表达式x0+x1+x2+...+xn<y的最大的n并作为函数返回值带回。例如,当x=2,y=1000时,程序输出8。
#include<stdio.h> #include<math.h> int fun(int x,long int y) { int i; long s=0; for(i=0;s<y;i++){ s+=pow(x,i); } return (i-2);} main() {int x;long y; scanf("%d%ld",&x,&y); printf("n=%d\n",fun(x,y)); .原创 2020-11-11 21:35:48 · 466 阅读 · 0 评论 -
编写函数int fun(char (*ss)[N],int m,char *s),功能是:形参ss指向一个m行N列的二维字符数组,每行存放一个字符串。求出最长的字符串,复制到s所指的字符数组中,然后返
#define N 30 #include<stdio.h> #include<string.h>int fun(char (*ss)[N],int m,char *s) { int i,j,k; s=ss[0]; for(i=0;i<m;i++){ if(strlen(s)<strlen(ss[i])){ s=ss[i]; } } j=strlen(s); printf("str=%s",s).原创 2020-11-10 06:43:54 · 886 阅读 · 0 评论 -
编写函数int countw(char *str),统计字符串str中单词的个数。单词之间以空格,逗号,句号作分隔,数字也看做单词。单词之间可能不止一个分隔符。如输入: It‘s 10:10
#include<stdio.h>int countw(char *str) { char c; int i=0,num=0,word=0; while((c=str[i])!='\0'){ if(c==' '||c==','||c=='.'){ word=0; } else if(word==0){ word=1; num++; } i++; } return num;原创 2020-11-09 09:37:56 · 3003 阅读 · 0 评论 -
编写函数void fun(char *str),功能:字符串str中单词以空格作分隔,如果单词之间不止一个空格,则删除多余的空格,使单词之间只保留一个空格。字符串开始的空格也只保留一个。例如,程序运行
```c#include<stdio.h>void fun(char *str) { int i,t; for(i=0;str[i]!='\0';i++) if(str[i]==' '&&str[i+1]==' ') { for(t=i+1;str[t]!='\0';t++) str[t]=str[t+1]; str[t+1]='\0'; i--; } } main() {char s[100]; puts(.原创 2020-11-06 23:06:32 · 833 阅读 · 0 评论 -
编写函数int fun(int a,int b),在[a,b]范围内统计满足下面条件的数的个数。条件:该数是素数,且该数逆序后形成的数也是素数。例如,在[100,150]范围内101 107 113
#include<math.h>#include<stdio.h> int fun(int a,int b) { int i,j,c,k=0,w,n,sum; double m,d; for(i=a;i<=b;i++){ m=sqrt(i); for(j=2;j<=m;j++) if(i%j==0) break; if(j>m){ for(w=i,sum=0;w>0;) { c=w%10; s原创 2020-11-04 15:40:29 · 1006 阅读 · 0 评论 -
编写函数void fun(char *str),功能:对形参str所指字符串中的字符按ASCII码升序排序。例如,下面程序运行时输入:The C Programming Language<回车>
#include <stdio.h>#include <string.h>void fun( char t[] ){ char c; int i, j; for( i = strlen( t )-1; i>0; i-- ) for( j = 0; j < i; j++ ) if( t[j] >t[ j + 1 ] ) { c = t[j];原创 2020-11-01 15:09:48 · 1784 阅读 · 0 评论 -
请编写函数void fun(int *a, int n, int y),它的功能是:把y值插入到有n个数的a数组中,a数组中的数已按由大到小的次序排好,y的值从键盘读入。 插入后,数组中的数仍然有序。
#include <stdio.h> void fun(int *a,int n,int y) { int i,j; for(i=0;i<n;i++){ if(y>a[i]) break; } for(j=n;j>i;j--) a[j]=a[j-1]; a[i]=y; } int main() {int i,a[11]={20,18,16,14,12,10,8,6,4,2},x; void fun(int *,int n,i原创 2020-10-30 19:42:22 · 1935 阅读 · 0 评论 -
程序可测试歌德巴赫猜想:从键盘上输入一个大于6的偶数,总 能找到两个素数,使得这两素数之和正好等于该偶数.
#include <stdio.h>#include <conio.h>int prime(int n){ int k,flag=1; for(k=2; k<=n/2+1; k++) if (n%k==0) { flag=/**/ 0 /**/ ; break;} return flag;}void main(){ int num, a;// clrscr(); do { printf("Please input an even numb原创 2020-10-29 21:03:06 · 1430 阅读 · 0 评论 -
使其用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。
#include <stdio.h>#include <math.h>/**/ void main() /**/{ float x,x0,f,f1; x=1.5; do { x0=x; f=((2*x0-4)*x0+3)*x0-6; f1=(6*x0-8)*x0+3; x=x0-f/f1; }/**/ while /**/(fabs(x-x0)>=1e-6); printf("the root is: %.2f\n",x);}原创 2020-10-29 21:02:38 · 5896 阅读 · 1 评论 -
实现将结构体数组mystudent中存储的各学生信息按其学号的升序排列。
#include<stdio.h>#include<string.h>typedef struct{ int num; char name[20],sex[2]; int age,score; }STU;STU mystudent[]={ {1111,"Zhangqiang","m",20,80}, {2104,"Liminghong","w",18,82}, {3121,"Wangxingda"原创 2020-10-28 21:37:17 · 1011 阅读 · 0 评论