二级c语言
二级C语言是全国计算机等级考试中的一项,是很多非计算机专业朋友需要获得的证书,这里收集大量的二级C语言相关的教程和题目
-
请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的 二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维 数组中。二维数组中的数已在主函数中给出。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花 括号中填入你编写的若干语句。/**********code.c**********/ #include <stdlic.h> #include <conio.h> #include <stdio.h> #define M 3 #define N 4 void fun(int tt[M][N],int pp[N]) { } void main() { int t[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}}; int p[N],i,j,k; system("CLS"); printf("The riginal data is:\n"); for(i=0;i<m;i++) {="" for(j="0;j<N;j++)printf("%6d",t[i][j]);" printf("\n");} fun(t,p); printf("\nthe result is:\n"); for(k="0;k<N;k++) printf("%4d",p[k]);
-
下列给定程序中,函数fun的功能是:从s所指字符串中,找出t所指 字符串的个数作为函数值返回。例如,当s所指字符串中的内容为“abcdabfab”,t所指字符串的内容为“ab”,则函数返回整数3。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的 结构!/**********code.c**********/ #include <stdlic.h> #include <conio.h> #include <stdio.h> #include <string.h> int fun(char *s, char *t) { int n; char *p, *r; n=0; while(*s) { p=s; r=t; while(*r) /**********found**********/ if(*r==*p){r++; p++} else break; /**********found**********/ if(r=='\0') n++; s++; } return n; } void main() { char s[100],t[100]; int m; system("CLS"); printf("\nPlease enter strings:"); scanf("%s",s); printf("\nPlease enter substrings:"); scanf("%s",t); m=fun(s,t); printf("\nThe result is:m=%d\n", m);} /**********-code.c**********/
-
下列给定程序的功能是调用fun函数建立班级通信录。通信录中记 录每位学生的编号、姓名和电话号码。班级人数和学生信息从键盘读 入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件 中。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得 出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构!/**********code.c**********/ #include <stdio.h> #include<stdlib.h> #define N 5 typedef struct { int num; char name[10]; char tel[10]; }STYPE; void check(); /**********found**********/ int fun(①______ *std) { /**********found**********/ ②______ *fp; int i; if((fp=fopen("myfile5.dat","wb"))==NULL)return(0); printf("\nOutput data to file! \n"); for(i=0;i<n;i++) **********found**********="" fwrite(&std[i],sizeof(stype),1,③______); fclose(fp); return(1); } void main() { STYPE s[10]={ {1,"aaaaa","111111"}, {1,"bbbbb","222222"}, {1,"ccccc","333333"}, {1,"ddddd","444444"}, {1,"eeeee","555555"} }; int k; k=fun(s); if(k==1) { printf("Succeed!"); check(); } else printf("Fail!"); } void check() { FILE *fp; int i; STYPE s[10]; if((fp=fopen("myfile5.dat","rb"))==NULL) { printf("Fail! \n"); exit(0); } printf("\nRead file and output to screen: \n"); printf("\n num name tel\n"); for(i=0;i<n;i++) { fread(&s[i],sizeof(stype),1,fp); printf("%6d%s%s\n",s[i].num, s[i].name,s[i].tel); } fclose(fp); **********-code.c**********
-
函数fun功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的个位和百位上。例如,当a=45,b=12。调用该函数后,c=4251。注意,部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。请勿改动主函数main和其它函数中的任何内容,仅在函数fun花括号中填入你编写的若干语句。/**********code.c**********/ #include <stdio.h> void fun(int a, int b, long *c) { } int main() { int a,b; long c; printf("Input a b:"); scanf("%d%d", &a, &b); fun(a, b, &c); printf("The result is: %ld\n", c); } /**********-code.c**********/
-
请根据以下各小题的要求设计C应用程序(包括界面和代码)。下列给定程序中,函数fun()的功能是:将n个无序整数从小到大排序。请改正程序指定部位的错误,使它能得到正确结果。注意:不要改动函数main(),不得增行或删行,也不得更改程序的结构。/**********code.c**********/ #include <stdio.h> void fun(int n, int *a) { int i,j,p,t; for(j=0;j<n-1;j++) { p=j; /**********found**********/ for(i=j+1;i<n-1;i++) if(a[p]>a[i]) /**********found**********/ t=i; if(p!=j) { t=a[j]; a[j]=a[p]; a[p]=t; } } }void putarr(int n, int *z) { int i; for(i=1;i<=n;i++,z++) { printf("%4d",*z); if(!(i%10)) printf("\n"); } printf("\n"); }void main() { int aa[20]={9,3,0,4,1,2,5,6,8,10,7},n=11; printf("\n\nBefore sorting %d numbers:\n",n); putarr(n,aa); fun(n,aa); printf("\nAfter sorting %d numbers:\n",n); putarr(n,aa); } /**********-code.c**********/
-
请补充fun函数,该函数的功能是:计算N×N维矩阵元素的方差,结果由函数返回。维数在主函数中输入。例如:的计算结果是14.414。求方差的公式为:其中注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。/**********code.c**********/ #include <stdio.h> #include <stdlib.h> #define N 20 /**********found**********/ double fun(①______,int n) { int i,j; double s=0.0; double f=0.0; double aver=0.0; double sd=0.0; for(i=0;i<n;i++) for(j=0;j<n;j++) s+=a[i][j]; /**********found**********/ aver=②______; for(i=0;i<n;i++) for(j=0;j<n;j++) f+=(a[i][j]-aver)*(a[i][j]-aver); f/=(n*n); /**********found**********/ sd=③______; return sd; } main() { int a[N][N]; int n; int i,j; double s; printf("*****Input the dimension of array n******\n"); scanf("%d",&n); printf("*****The array*****\n"); for(i=0;i<n;i++) { for(j=0;j<n;j++) { a[i][j]=rand()%50; while (a[i][j]==0) a[i][j]=rand()%60; printf("%4d",a[i][j]); } printf("\n\n"); } s=fun(a,n); printf("*****THE RESULT*****\n"); printf("%4.3f\n",s); }
-
给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。给定源程序:#include <stdio.h> #include <stdlib.h> typedef struct aa {int data; struct aa *next;}NODE; int fun(NODE *h) {int sum = 0 ; NODE *p; /***********found**********/ p=__1__; while(p) {if(p->data%2==0) sum +=p->data; /***********found**********/ p=__2__; } return sum; } NODE *creatlink(int n) {NODE *h, *p, *s; int i; h=p=(NODE *)malloc(sizeof(NODE)); for(i=1; i<=n; i++) {s=(NODE *)malloc(sizeof(NODE)); s->data=rand()%16; s->next=p->next; p->next=s; p=p->next; } p->next=NULL; return h; } outlink(NODE *h, FILE *pf) {NODE *p; p = h->next; fprintf(pf ,"\n\nTHE LIST :\n\n HEAD "); while(p) {fprintf(pf ,"->%d ",p->data); p=p->next;} fprintf (pf,"\n"); } outresult(int s, FILE *pf) {fprintf(pf,"\nThe sum of even numbers : %d\n",s);} main() {NODE *head; int even; head=creatlink(12); head->data=9000; outlink(head , stdout); even=fun(head); printf("\nThe result :\n"); outresult(even, stdout); }
-
给定程序中,函数fun的功能是用函数指针指向要调用的函数,并进行调用。规定在__2__处使fa指向函数f1,在__3__处使fb指向函数f2。当调用正确时,程序输出:x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#include <stdio.h> double f1(double x) {return x*x;} double f2(double x, double y) {return x*y;} double fun(double a, double b) { /**********found**********/ __1__ (*f)(); double r1, r2; /**********found**********/ f = __2__ ; /* point fountion f1 */ r1 = f(a); /**********found**********/ f = __3__ ; /* point fountion f2 */ r2 = (*f)(a, b); return r1 + r2; } main() {double x1=5, x2=3, r; r = fun(x1, x2); printf("\nx1=%f, x2=%f, x1*x1+x1*x2=%f\n",x1, x2, r); }
-
以下程序打开新文献f.txt,并调用字符输出函数将a数组中的字符写入其中,请填空。 #include<stdio.h> main() {____*fp; char a[5]={’1’,’2’,’3’,’4’,’5’},i; fp=fopen(”f .txt”,”w”); for(i=0;i<5;i++)fputc(a[i],fp); fclose(fp); }
-
以下程序的功能是:借助指针变量找出数组元素中最大值所在的位置并输出该最大值。请在输出语句中填写代表最大值的输出项。 #include<stdio.h> main() {int a〔10],*p,*s; for(p=a;p-a<10;p++)scanf(”%d”,p); for(p=a,s=a;p-a<10;p++)if(*p>*s)S=P; printf("max=%d\n”,____); }
-
有以下程序 #include<stdio.h> main() {int n[2],i,j; for(i=0;i<2;i++)n[i]=0; for(i=0;i<2;i++) for(j=0;j<2;j++)n[j]=n[i]A+1; printf(”%d\n”,n[1]); } 程序运营后的输出结果是____
-
以下fun函数的功能是在N行M列的整形二维数组中,选出一个最大值作为函数值返回,请填空。(设M,. N已定义) int fun(int a[N][M)) {int i,j,row=0,col=0; for(i=0;i<N;I++) for(j=0;j if(a[i][j]>a[row][col]){row=i;col=j;} return(____): }
-
有以下程序#include<stdio.h> int*f(int *p,int*q); main() {int m=1,n=2,*r=&m; r=f(r,&n);printf(”%d\n”,*r); } int*f(int *p,int*q) {return(*p>*q)?p:q;}程序运营后的输出结果是____
-
以下fun函数的功能是:找出具有N个元素的一维数组中的最小值,并作为函数值返回。请填空。(设N已定义) int fun(int x[N]) {int i,k=0; for(i=0;i<N;____++) if(x[i] return x[k]; }
-
有以下程序#include<stdio.h> main() {int i,n[]={0,0,0,0,0}; for (i=1;i<=4;i++) {n[i]=n[i-1]*3+1; printf(”%d ",n[i]);} }程序运营后的输出结果是____。
-
在C语言中,当表达式值为0时表达逻辑值“假”,当表达式值为____时表达逻辑值“真”。
-
有以下程序 #include<stdio.h> main() {int x,Y; scanf(”%2d%ld”,&x,&y);printf(”%d\n”,x+y); } 程序运营时输入:1234567程序的运营结果是____
-
以下程序运营后的输出结果是____。#include<stdio.h> main(){ int a=200,b=010; printf("%d%d\n",a,b); }
-
数据库设计的四个阶段是:需求分析,概念设计,逻辑设计,____
-
仅由顺序、选择(分支)和反复(循环)结构构成的程序是____程序。