以下程序运行时输出到屏幕的结果中第一行是____,第二行是____。
1)
#include<stdio.h> int main() { int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i,j; for(i=0;i<12;i++) { j=s[i];//i为样本s的个数 c[j]++;//c[j]=c[j]+1。从c[j]初始化0开始,每出现一次j,c[j]自增1 } for(i=1;i<5;i++) printf("%d;%d\n",i,c[i]); return 0; }
2)
#include<stdio.h> int fun(int x) { static int c,y;//函数fun(2)第一次调用,静态变量c的值自动初始化为0 if(c==0) y=1; else y=y+x; c++; return y; } int main() { int i; for(i=0;i<2;i++) printf("%d\n",fun(2)); return 0; }
3)
#include<stdio.h> void fun(int*a,int b)//被调函数 { while(b>0) { *a+=b; b--; } } int main()//主调函数main()将变量y的值传递给fun()函数,函数fun()的执行不会影响变量y的值的变化 { int x=0,y=3; fun(&x,y); printf("%d\n%d",x,y); return 0; }
4)
以下程序运行时输出到屏幕的结果是___。//这题最简单啦
#include<stdio.h> int f(int x) { if(x==0||x==1) return 3; return x*x-f(x-2); } int main() { printf("%d\n",f(3)); return 0; }
5)
以下程序运行时输出到屏幕的结果中第一行是___,第二行是___,第三行是___。算法提示:将Fibonacci数列(1,1,2,3,5,8,13...)前6个数填入a数组
#include<stdio.h> #define N 3 int main() { int i,j,a[N][N]={1},f1=0,f2=1,temp;//a[0][0]赋值为1,数组其他元素都赋值为0 for(i=1;i<N;i++) for(j=0;j<=i;j++) { if(i<=i) { a[i][j]=f1+f2; temp=f1; f1=f2; f2=f1+temp; } } for(i=0;i<N;i++) { for(j=0;j<N;j++) printf("%5d",a[i][j]); printf("\n"); } return 0; }
三、操作题
1
#include<stdio.h> #include<conio.h> int leap(int year) { int y; y=year%4==0&&year%100!=0||year%400==0; return y; } void month_day(int year,int yearday,int*month,int*day)//*month,*day { int k,p; int tab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}}; p=leap(year); for(k=1;yearday>tab[p][k];k++) yearday=yearday-tab[p][k]; *month=k; *day=yearday; } int main() { int year,days,month,day; printf("Input year and days!\n"); scanf("%d,%d",&year,&days); if(leap(year)==1&&days<=366||leap(year)==0&&days<=365) { month_day(year,days,&month,&day);//&month,&day printf("\n%d/%d/%d",year,month,day); } else puts("days is wrong!"); getch(); return 0; }
2、改错
#include<stdio.h> #include<conio.h> #include<ctype.h> /*函数wordsearch返回找到的回文单词个数并取得回文单词*/ int wordsearch(char a[],char b[][10]) { int i,j,k,m,n,t,c=0,d;//c为回文单词个数,其它为循环临时变量 for(i=0;a[i];i++)//循环查找整个字符串// { for(j=i,k=i;isalpha(a[k]);k++);//循环得到一个单词,函数isalpha判断a[k]是否为字母 m=j;//记录单词起始位置 n=k-1;//记录单次结束位置 /*循环判断该单词前后字符是否相等*/ while(toupper(a[m])==toupper(a[n])&&m<=n) { m++; n--; } if(m>n) { for(d=0,t=j;t<k;t++) b[c][d++]=a[t]; b[c][d]='\0'; c++; } i=k; } return c; } int main() { s char s1[]="Dad left home at noon."; char s2[10][10]; int i,j; puts(s1); j=wordsearch(s1,s2); printf("found %d words\n",j); for(i=0;i<j;i++) puts(s2[i]); getch(); return 0; }
3、编程
#include<stdio.h> #define N 5 int judge(int a[N][N]) { int i,j,b[N+N+2]={0},*p1,*p2; for(i=0;i<N;i++) { for(j=0;j<N;j++) b[i]+=a[i][j]; } for(j=0;j<N;j++) { for(i=0;i<N;i++) b[N+j]=a[i][j]; } for(i=0;i<N;i++) b[N+j]=a[i][j]; for(i=0;i<N;i++) b[N+1+j]=a[i][N-1-j]; p1=b; p2=b+N+N+1; while(p1<p2) { if(*p1!=*(p1+1)) return 0; else p1++; } return 1; } int main() { int i,j,x[N][N]={{17,24,1,8,15},{23,5,7,14,16},{4,6,13,20,22},{10,12,19,21,3},{11,18,25,2,9}}; FILE*fp; fp=fopen("myf2.out","w"); for(i=0;i<N;i++) { for(i<0;i<N;i++) { printf("%4d",x[i][j]); fprintf(fp,"%4d",x[i][j]); } printf("\n");fprintf(fp,"\n"); } if(judge(x)) { fprintf(fp,"yes"); printf("yes"); } else { printf("no"); fprintf(fp,"no"); } fprintf(fp,"\nMy exam number is:0112400123"); fclose(fp); return 0; }
浙公网安备 33010602011771号