c语言编程题经典100例 考研,c语言编程题

1,c语言编程题#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>using namespace std;const int mon[13]=bool rn(int year) if(year%4==0&&(year%100!=0||year%400==0)) return true; return false;}int n;int main() scanf("%d",&n); n--; int y=1777,m=4,d=30; while(n>365&&!rn(y)||n>366) if(rn(y))while(n>=mon[m]&&m!=2||m==2&&n>=29||m==2&&n>=28&&rn(y))n-=mon[m];if(m==2) n-=rn(y);m++;if(m>=13)} while(n>=1)d++;n--;if(m!=2&&d>mon[m])if(m==2&&d>mon[2]+rn(y))if(m>=13)} printf("%04d-%02d-%02d",y,m,d); return 0;}有什么不懂可以追问
2,C 语言编程题这是要考数组操作呀char *substr(char s[],int m,int n) static char pstr[100]; for(;m<=n;++m) pstr[m-1]=s[m-1]; return pstr;}int main() char str[]="informationtechnology"; char *p; p=substr(str,1,4); printf("%s\n",p); return 0;}#include<stdio.h>#include<math.h>int main()return 0;}第一图:考点:自键运算;运行结果:y=9y=8...y=0共10个要点:注意y--与--y的区别,如果题中将y--改为--y,则输出9个结果,没有y=0;;举一个简单的例子 , 下列语句:i=1,j=1;a=--i;b=j--;那么a,b,i,j的值是多少呢? a=0,i=0,b=1,j=0;前自增(减)表达式的值与变量原值相等,后自增(减)表达式的值与变量后值相等第二图:程序功能很简单,循环执行6侧,每一次给C一个值,并将其输出考点:getchar()对回车符的处理;举例子:假设<CR>为回车符输入:abcdef<CR> 和 abc<CR>def<CR>是否一样呢?答案是不一样 。<CR>也作为一个字符被接受并输出,所以你会发现第二次的输出少了一个f , 而且有换行我看不清图上后三行写的什么,我大约说一下吧假设是这样的:u<CR>w<CR>xma<CR>输出为:uwxm共四个字母两个换行,明白了吧?多做几组测试你就会清楚了
3,C语言编程题去下载一个转换器 。#include <studio.h>void main() int num; int a[20],i=0; printf("请输入一个十进制数字:\n"); scanf("%d",&num); for(;num;)a[i]=num%b;// b要换成的几进制num=num/b;i++;}int k=i-1; for(;k>=0;k--)printf("%d",a[k]); }}#include<stdio.h>#include<stdlib.h>void Itob(int n,char s[],int b);int main()int n,s[100],b;scanf("%d %d",&n,&b);//n是要转换的数,b是进制Itob(n,s,b);printf("\n");return 0;}void Itob(int n,char s[100],int b)int i=0,j;while(n!=0)j=i; s[i++]=n%b;//取余数 n/=b;}for(i=j; i>=0; i--)if(s[i]<10) printf("%d",s[i]);//小于10的时候直接输出 } else printf("%c",s[i]+55);//大于等于10时用大写英文字母代替 }}}给你一个思路,把十进制转换为X进制:用stack思想 , 用这个十进制数对X进制取模如:对11去二进制11/2=5...1 5/2=2...12/2=1...01/2=0...1所以此数转换成二进制为1011【c语言编程题经典100例 考研,c语言编程题】
4 , c语言编程题我用的是数组,你可以把数组换成指针!你要把12345变成34512 可以n输入5 m输入3 然后输入12345.其实这个程序就是输入n个数,向右移动m位 移出的在从前面移入 。希望能满意?。∥乙彩浅跹!以后多交流 。#include<stdio.h>int mov(int n,int m,int *a);int j,k,l;int main() int n,m,i;inta[100]; printf("Enter n,m(m是移动的位数):"); scanf("%d%d",&n,&m);printf("Enter numbers:"); for(i=0;i<n;i++) scanf("%d",&a[i]); mov(n,m,a); printf("\n");}int mov(int n,int m,int *a) intb[100]; for(k=0;k<=n-m;k++) b[k+m]=a[k]; for(j=0;j<m;j++) b[j]=a[n-m+j]; printf("After sorted:"); for(l=0;l<n;l++) printf("%d",b[l]);return 0;} 你可以把数字拆成一个一个的 然后连成环链 然后头指针+2再输出就可以了我这有个代码 你看看 我刚试过可以#include<stdio.h>#include<string.h>char *fun(char *str,int n) int k,len=strlen(str); for(k=0;k<n;k++)strcpy(str,str+1); str[len-1]=t;} return str;}main() int n; gets(s); scanf("%d",&n); if(n>strlen(s)) return(0);} printf("the result is:%s\n",fun(s,n) );}

    推荐阅读