2012年9月全国等级计算机考试c语言上机题库
2012年全国计算机二级C语言上机题题库(超值100题))
2012年全国计算机二级C语言上机题题库(超值100题)1: 第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:void fun(int *a, int *n){int i,j=0;for(i=2;i<1000;i++)if ((i%7==0 || i%11==0) && i%77!=0)a[j++]=i;*n=j;}3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
答案:void fun(int x, int pp[ ], int *n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4: 第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。
2012年9月c语言考试真题
简答题1.么是低级语言,高级语言,面向过程的语言,面向对象的语言?2.C语言的特点?(8个特点)4.表达式在计算时,其类型如何确定?5. C语言中,如何实现类型的转换?选择题1.以下字符串可以为用户定义的标示符的是 D。
A. shortB. LINE 5C. nextday D. _my2.设c是字符变量,则以下表达式正确的是B。
A. c=1234B. c='c'C. c="c" D. c="abcd"3.类型修饰符unsinged不能修饰下面的D类型。
A. intB. charC.long D. double4.下列正确的字符常量是D。
A. ' \234'B. ' \af'C. "a" D. ' a'8.以下选项中不正确的整型常量是__C__。
A. 12LB. -10C.1,900 D. 123U5. 若有语句:int a,b,c;则下面输入语句正确的是C。
A. scanf(" %D%D%D",a, b, c);B. scanf("%d%d%d",a,b,c);C.scanf("%d%d%d",&a,&b,&c);D. scanf("%D%D%D",&a,&b,&c);6.int m=546, n=765;printf(" m=%-6d,n=%6d",m,n);则输出的结果是B。
A. m=546,n=765B. m=546 ,n= 765C. m=%546,n=%765D.m= 546,n=7657.有如下程序:main( ){int x;float y;scanf("%3d%f",&x,&y);printf("x=%d,y=%f\n",x,y);}其输入数据为12345 678↙,则输出结果为 D 。
2012年9月计算机二级C语言上机题库及答案(破译版)
计算机二级c语言上机题库内部资料,切勿外传!.第1套填空题请补充FUN函数,FUN函数的功能是求10的阶乘。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
试题程序:#include <stdio.h>long fun(int n){if (___1___)return (n*fun(___2___));return ___3___;}main(){p rintf("10!=%ld\n", fun(10));}第1处填空:n>1或1<n第2处填空:n-1第3处填空:1或11或1L改错题下列给定程序的功能是:读入一个整数K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。
例如,若输入整数2310,则应输出:2、3、5、7、11。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>/********found********/IsPrime(int n);{int i, m;m = 1;/********found********/for (i=2; i<n; i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter an integer number between 2 and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(s) of %d is(are):", k);for (j=2; j<k; j++)if ((!(k%j)) && (IsPrime(j)))printf(" %4d,", j);printf("\n");}第1处:Isprime(int n);应改为Isprime(int n)第2处:if !(n%i)应该为if(!(n%i))编程题M个人的成绩存放在score数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below所指的数组中。
2012年9月全国计算机c语言试题
2006年4月全国计算机等级考试二级C一、选择题((1)一(10)每题2分,(11)一(50)每题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)下列选项中不属于结构化程序设计方法的是A)自顶向下B)逐步求精 C)模块化 D)可复用(2)两个或两个以上模块之间关联的紧密程度称为A)耦合度B)内聚度C)复杂度 D)数据传输特性(3)下列叙述中正确的是A)软件测试应该由程序开发者来完成B)程序经调试后一般不需要再测试C)软件维护只包括对程序代码的维护D)以上三种说法都不对(4)按照“后进先出”原则组织数据的数据结构是A)队列 B)栈 C)双向链表 D)二叉树(5)下列叙述中正确的是A)线性链表是线性表的链式存储结构B)栈与队列是非线性结构C)双向链表是非线性结构D)只有根结点的二叉树是线性结构(6)对如下二叉树ABDECF进行后序遍历的结果为A)ABCDEF B)DBEAFC C)ABDECF D)DEBFCA(7)在深度为7的满二叉树中,叶子结点的个数为A)32 B)31 C)64 D)63(8)“商品”与“顾客”两个实体集之间的联系一般是A)一对一 B)一对多 C)多对一 D)多对多(9)在E-R图中,用来表示实体的图形是A)矩形 B)椭圆形 C)菱形 D)三角形(10)数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是A)DB包含DBS和DBMS B)DBMS包含DB和DBSC)DBS包含DB和DBMS D)没有任何关系(11)以下不合法的用户标识符是A)j2_KEY B)Double C)4d D)_8_(12)以下不合法的数值常量是A)011 B)1e1 C)8.0E0.5 D)0xabcd(13)以下不合法的字符常量是A)′\018′B)′\"′C)′\\′D)′\xcc′(14)表达式3.6-5/2+1.2+5%2的值是A)4.3 B)4.8 C)3.3 D)3.8(15)以下能正确定义字符串的语句是A)char str[]={′\064′}; B)char str="kx43";C)char str="; D)char str[]="\0";(16)以下数组定义中错误的是A)int x[][3]={0};B)int x[2][3]={{l,2},{3,4},{5,6}};C)int x[][3]={{l,2,3},{4,5,6}};D)int x[2][3]={l,2,3,4,5,6};(17)若要求从键盘读入含有空格字符的字符串,应使用函数A)getc() B)gets() C)getchar()D)scanf()(18)以下四个程序中,完全正确的是A)#include <stdio.h>B)#include <stdio.h>main();main(){/*programming*/{/*/ programming /*/printf("programming!\n");}printf("programming!\n");}C) #include <stdio.h>D) include <stdio.h>main()main(){/*/*programming*/*/{/*programming*/printf("programming!\ n");}printf("programming!\n");}(19)若有定义:floatx=1.5;int a=1,b=3,c=2;则正确的switch语句是A)switch(x)B)switch((int)x);{case 1.0:printf("*\n"); {case 1:printf("*\n");case 2.0:printf("**\n");} case 2:printf("**\n");}C)switch(a+b)D)switch(a+b){case 1:printf("*\n");{case 1:printf("*\n");case 2+1:printf("**\n");}case c:printf("**\n");}(20)若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是A)main()B)float fun(int a,int b){……}{……x=fun(2,10);……}main()float fun(int a,int b){……}{……x=fun(i,j);……}C)float fun(int,int);D)main()main() {float fun(int i,int j);{……x=fun(2,10);……} ……x=fun(i,j);……}float fun(int a,int b){……} float fun(int a,int b){……}(21)在以下给出的表达式中,与while(E)中的(E)不等价的表达式是A)(!E==0) B)(E>0‖E<0) C)(E==0) D)(E!=0)(22)要求通过while循环不断读入字符,当读入字母N时结束循环。
2012年9月份全国计算机等级考试三级c语言 三级网络技术题库
printf("%d ",xx[m]); printf("\n"); readwriteDat(); } void readwriteDat() { int m,n,xx[1000], i; FILE *rf,*wf;
rf=fopen("in.dat","r"); wf=fopen("out.dat","w"); for(i=0;i<10;i++){ fscanf(rf,"%d %d",&m,&n); num(m,n,xx); for(m=0;m<n;m++)fprintf(wf,"%d ",xx[m]); fprintf(wf,"\n"); } fclose(rf); fclose(wf); } ☆ 题目2 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把 这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位 数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt, 并把这些四位数按从大到小的顺序存入数组b中。最后main( )函数调用 写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到 OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。 程序中已定义数组:a[200],b[200],已定义变量:cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数 readDat()和写函数writeDat()的内容。 #include <stdio.h> #define MAX 200 int a[MAX], b[MAX], cnt = 0 ;
全国2012年9月计算机等级考试二级C语言上机题库100套(第二部分50至100套)(二级C语言)
第50套:给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。
例如,若N=3,有下列矩阵:1 2 34 5 67 8 9计算结果为1 0 06 5 010 14 9请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!给定源程序:#include <stdio.h>#define N 4/**********found**********/void fun(int (*t)___1___ )/* 宏为世纪教育 */{ int i, j;for(i=1; i<N; i++){ for(j=0; j<i; j++){/**********found**********/___2___ =t[i][j]+t[j][i];/**********found**********/___3___ =0;}}}main(){ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,1 0}, i, j;printf("\nThe original array:\n");for(i=0; i<N; i++){ for(j=0; j<N; j++) printf("%2d ",t[i][j]);printf("\n");}fun(t); printf("\nThe result is:\n");for(i=0; i<N; i++){ for(j=0; j<N; j++) printf("%2d ",t[i][j]);printf("\n");}}解题思路:第一处:形参t的定义,整数数组其宽度为N,所以应填:[N]。
全国计算机等级考试二级C语言机试真题2012年09月
全国计算机等级考试二级C语言机试真题2012年09月(总分:100.00,做题时间:90分钟)一、程序填空题(总题数:1,分数:30.00)1.下列给定程序中已建立一个带头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。
函数fun的功能是:把形参x的值放入一个新结点并插入链表中,使插入后各结点数据域中的数据仍保持递增有序。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!试题程序:#include <stdio.h>#include <stdlib.h>#define N 8typedef struct listint data;struct 1ist * next;SLIST;void fun(SLIST * h, int x)SLIST * P, * q, * s;s=(SLIST* )malloc(sizeof(SLIST));/********** found********** /s->data=______;q=h;p=h->next;while(p! =NULL && x>p->data)/********** found********** /q=______;p=p->next;s->next=p;/********** found********** /q->next=______;SLIST * creatlist(int * a)SLIST * h, * p, * q; int i;h=p=(SLIST * )malloc(sizeof(SLIST));for(i=0; i<N; i ++)q=(SLIST * )malloc(sizeof(SLIST));q->data=a[i]; p->next=q; p=q;p->next=0;return h;void outlist(SLIST * h)SLIST * p;p=h->next;if(p==NULL)printf("/nThe list is NULL! /n");elseprintf("/nHead");do printf("->% d", p->data);p=p->next;while(p!=NULL);printf("->End/n");main()SLIST * head; int x;int a[N]=11, 12, 15, 18, 19, 22, 25, 29;head=creatlist(a);printf("/nThe list before inserting: /n");outlist(head);printf("/nEnter a number: ");scanf("%d", &x);fun(head, x);printf("/nThe list after inserting: /n");outlist(head);(分数:30.00)填空项1:__________________ (正确答案:(1)x (2)p (3)s)解析:[考点] 本题考查:链表的基本操作。
2012年全国计算机等级C语言考试经典例题及题库
1、对象有如下一些基本特点,即标识惟一性、分类性、多态性、封装性和模块独立性。
2、SQL语句中凡创建都用CREA TE,删除都用DROP,改用ALTER,再跟类型和名字,附加子名。
3、关系模型允许定义3类数据约束,它们是实体完整性约束、参照完整性约束及用户自定义的完整性约束。
4、循环链表就是将链表的最后一个结点指向链表头结点(或第一个结点),即p->next=head。
5、程序设计应该简单易懂,语句构造应该简单直接,不应该为提高效率而把语句复杂化。
6、数据模型所描述的内容3有个部分,它们是数据结构、数据操作和数据约束。
7、C语言的转义字符见下表所示。
转义字符转义字符的意义\n 回车换行\t 横向跳到下一制表位置\v 竖向跳格\b 退格\r 回车\f 换页\\反斜线符“\”\’单引号符\a 鸣铃\ddd 1~3位八进制数所代表的字符\xhh 1~2位十六进制数所代表的字符8、分析:本题考查switch语句的掌握。
必须掌握以下内容:首先应该明白switch语句的语法格式:switch语句的语法格式为:switch(表达式){case常量表达式1:语句组1;case常量表达式2:语句组2;…case常量表达式n:语句组n;default:语句组n+1;}另外,注意以下几点关于switch语句的重点:①系统在执行时计算开关表达式的值;②根据所得的值在各个case标号表达式中寻找匹配,直到发现与表达式匹配的标号(本例中匹配的是case ′B′:);③找到匹配后执行后面相应的语句表,顺序往下执行;④如果无相匹配的标号,若存在default标号,则执行该语句标号后面的语句表n+1;当不存在default标号时,不执行switch中的任何一个语句表。
一般而言,在多分支结构中总会出现“意外”的情况,这时均可归入default:程序段,作统一的处理。
default标号是可选性的,不必每次都有,视需要而定。
switch语句中还可以包含switch语句,形成switch的嵌套9、在C语言中,逻辑运算符中一共有4个,它们分别是!(逻辑非)、||(逻辑或)、&&(逻辑与)、^(异或)。
2012年计算机二级C语言上机题及答案汇总(一)
1、给定程序中,函数fun的功能是:在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变,在主函数中输出处理后的数据序列,并将中间数作为函数值返回。
例如,有9个正整数:1 5 7 23 87 5 8 21 45按升序排列时的中间数为:8处理后主函数中输出的数列为:8 8 8 23 87 8 8 21 45请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!#include#define N 9int fun(int x[]){ int i,j,k,t,mid,b[N];for(i=0;i for(i=0;i<=N/2;i++){ k=i;for(j=i+1;jb[j]) k=j;if(k != i ){/**********found**********/t=b[i]; b[i]=___1___; b[k]=t;}}/**********found**********/mid=b[___2___];for(i=0; i /**********found**********/if(x[i] ___3___ mid) x[i]=mid;return mid;}main(){ int i, x[N]={1,5,7,23,87,5,8,21,45};for(i=0; i for(i=0; i }2、给定程序中,函数fun的功能是建立一个N×N的矩阵。
矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,…依次类推。
例如,若N=5,生成的矩阵为:1 1 1 1 11 2 2 2 11 2 3 2 11 2 2 2 11 1 1 1 1请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
2012年9月全国计算机等级考试二级C语言上机题库(完整版)
第一套1.程序填空程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。
函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
第一处struct student t;第二处for(i=0;i<n-1;i++)第三处if(strcmp(a[i].name,a[j].name)>0)2程序修改给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。
/**found**/q=p+i;/**found**/while(q>p)3程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
int fun(STREC *a,STREC *b,int l,int h){int i,j=0;for(i=0;i<N;i++)if((a[i].s>=1&&a[i].s<=h)b[j++]=a[i];return j;}第二套1.程序填空给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。
函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。
第一处free(q);第二处q=p->next;第三处q=q->next;2. 程序修改给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。
/**found**/p=j;/**found**/p=i;3. 程序设计请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n 返回这些数的个数。
2012年9月计算机二级c语言上机题库
2011年3月最新计算机二级C语言题库(根据等考通最新版本自己整理)第一套1.程序填空题程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。
所有学生数据均以二进制方式输出到student.dat文件中。
函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件中该学生的数据,即用该学生的新数据覆盖原数据,其他学生数据不变;若找不到,则什么都不做。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!#include <stdio.h>#define N 5typedef struct student{long sno;char name[10];float score[3];}STU;void fun(char *filename, long sno){FILE *fp;STU n; int I;fp=fopen(filename,"rb+");/**********found**********/while(!___1___){fread(&n,sizeof(STU),1,fp);/**********found**********/if(n.sno___2___) break;}if(!feof(fp)){for(i=0;i<3;i++) n.score[i]+=3;/**********found**********/fseek(fp,1L*___3___,SEEK_CUR);fwrite(&n, sizeof(STU), 1, fp);}fclose(fp);}main({STUt[N]={{10001,"MaChao",91,92,77},{10002,"CaoKai",75,60,88},{10003,"LiSi",85,70,78},{10004,"Fa ngFang",90,82,87},{10005,"ZhangSan",95,80,88}},ss[N];int I,j; FILE *fp;fp=fopen("student.dat","wb");fwrite(t, sizeof(STU), N, fp);fclose(fp);printf("\nThe original data :\n");fp=fopen("student.dat","rb");fread(ss, sizeof(STU), N, fp);for(j=0; j<N; j++){printf("\nNo:%ld Name:%-8sScores: ",ss[j].sno,ss[j].name);for(i=0;i<3;i++)printf("%6.2f ",ss[j].score[i]);printf("\n");}fun("student.dat",10003);fp=fopen("student.dat","rb");fread(ss,sizeof(STU),N,fp);fclose(fp);printf("\nThe data aftermodifying :\n");for(j=0;j<N;j++){printf("\nNo:%ld Name: %-8s Scores:",ss[j].sno,ss[j].name);for(i=0;i<3;i++)printf("%6.2f",ss[j].score[i]);printf("\n");}}【答案】(1)feof(fp) (2)==sno (3)sizeof(STU)2.程序修改题给定程序中,函数fun的功能是:计算正整数num的各位上的数字之积。
2012年9月计算机二级C语言考试(试题及详解)
C语言程序设计(考试时间90 分钟,满分100 分)一、选择题((1)—(10)、(21)—(40)每题2 分,(11)—(20)每题1 分,共70 分)(11)以下叙述中正确的是A)在C语言程序中,main 函数必须放在其他函数的最前面B)每个后缀为.C的C语言源程序都可以单独进行编译C)在C语言程序中,只有main 函数才可单独进行编译D)每个后缀为.C的C语言源程序都应该包含一个main函数(12)C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是A)预定义标识符(如库函数中的函数名)可用作用户标识符,但失去原有含义B)用户标识符可以由字母和数字任意顺序组成C)在标识符中大写字母和小写字母被认为是相同的字符D)关键字可用作用户标识符,但失去原有含义(13)以下选项中表示一个合法的常量是(说明:符号□表示空格)A)9□9□9 B)0Xab C)123E0.2 D)2.7e(14)C语言主要是借助以下哪个功能来实现程序模块化A)定义函数B)定义常量和外部变量C)三种基本结构语句D)丰富的数据类型(15)以下叙述中错误的是A)非零的数值型常量有正值和负值的区分B)常量是在程序运行过程中值不能被改变的量C)定义符号常量必须用类型名来设定常量的类型D)用符号名表示的常量叫符号常量(16)若有定义和语句:int a,b; scanf("%d,%d",&a,&b); 以下选项中的输入数据,不能把值3 赋给变量a、5 赋给变量b 的是A)3,5, B)3,5,4 C)3 ,5 D)3,5(17)C语言中char 类型数据占字节数为A)3 B)4 C)1 D)2(18)下列关系表达式中,结果为“假”的是A)(3+4)>6 B)(3!=4)>2 C)3<=4||3 D)(3<4)==1(19)若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch 语句是A)switch(a+9) B)switch a*b{ case c1:y=a-b; { case 10:x=a+b;case c1:y=a+b; default :y=a-b;} }C)switch(a+b) D)switch (a*b+b*b){ case1 : case3:y=a+b;break; { default :break;case0 : case4:y=a-b; case 3:y=a+b; break;} case 2:y=a-b; break;}(20)有以下程序# include <stdio.h>main(){int a=-2,b=0;while(a++&&++b);printf("%d,%d\n",a,b);}程序运行后的输出结果是A)1,3 B)0,2 C)0,3 D)1,2(21)设有定义:int x=0,*p;,立即执行以下语句,正确的语句是A)p=x; B)*p=x; C)p=NULL; D)*p=NULL;2012 年9 月笔试真卷及答案详解第3 页(共12 页)(22)下列叙述中正确的是A)可以用关系运算符比较字符串的大小B)空字符串不占用内存,其内存空间大小是0C)两个连续的单引号是合法的字符常量D)两个连续的双引号是合法的字符串常量(23)有以下程序#include <stdio.h>main(){char a='H';a=(a>='A'&&a<='Z')?(a-'A'+'a'):a;printf("%c\n",a);}程序运行后的输出结果是A)A B)a C)H D)h(24)有以下程序#include <stdio.h>int f(int x);main(){ int a,b=0;for(a=0;a<3;a++){b=b+f(a);putchar('A'+b);}}int f(int x){return x*x+1;}程序运行后的输出结果是A)ABE B)BDI C)BCF D)BCD(25)设有定义:int x[2][3];,则以下关于二维数组x 的叙述错误的是A)x[0]可看作是由3 个整型元素组成的一维数组B)x[0]和x[1]是数组名,分别代表不同的地址常量C)数组x 包含6 个元素D)可以用语句x[0]=0;为数组所有元素赋初值0(26)设变量p 是指针变量,语句p=NULL;,是给指针变量赋NULL 值,它等价于A)p=""; B)p='0'; C)p=0; D)p='';(27)有以下程序#include <stdio.h>main(){ int a[]={10,20,30,40},*p=a,i;for(i=0;i<=3;i++){a[i]=*p;p++;}printf("%d\n",a[2]);}A)30 B)40 C)10 D)20(28)有以下程序#include <stdio.h>#define N 3void fun(int a[][N],int b[]){ int i,j;for(i=0;i<N;i++)2012 年9 月笔试真卷及答案详解第4 页(共12 页){ b[i]=a[i][0];for(j=1;j<N;j++)if(b[i]<a[i][j]) b[i]=a[i][j];}}main(){ int x[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;fun(x,y);for(i=0;i<N;i++) printf("%d,",y[i]);printf("\n");}A)2,4,8 B)3,6,9 C)3,5,7 D)1,3,5(29)有以下程序(strcpy 为字符串复制函数,strcat 为字符串连接函数)#include <stdio.h>#include <string.h>main(){ char a[10]="abc",b[10]="012",c[10]="xyz";strcpy(a+1,b+2);puts(strcat(a,c+1));}程序运行后的输出结果是A)a12xyz B)12yz C)a2yz D)bc2yz(30)以下选项中,合法的是A)char str3[]={'d', 'e', 'b', 'u', 'g', '\0'};B)char str4; str4="hello world";C)char name[10]; name="china";D)char str1[5]= "pass",str2[6]; str2=str1;(31)有以下程序#include <stdio.h>main(){ char *s="12134";int k=0,a=0;while(s[k+1]!='\0'){ k++;if(k%2==0){a=a+(s[k]-'0'+1);continue;}a=a+(s[k]-'0');}printf("k=%d a=%d\n",k,a);}程序运行后的输出结果是A)k=6 a=11 B)k=3 a=14 C)k=4 a=12 D)k=5 a=15 (32)有以下程序#include <stdio.h>main(){ char a[5][10]={"one","two","three","four","five"};int i,j;char t;for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(a[i][0]>a[j][0])2012 年9 月笔试真卷及答案详解第5 页(共12 页){ t=a[i][0];a[i][0]=a[j][0];a[j][0]=t;}puts(a[1]);}程序运行后的输出结果是A)fwo B)fix C)two D)owo(33)有以下程序#include <stdio.h>int a=1,b=2;void fun1(int a, int b){ printf(“%d%d”,a,b); }void fun2( ){ a=3; b=4; }main(){ fun1(5,6); fun2();printf("%d%d\n",a,b);}程序运行后的输出结果是A)1 2 5 6 B)5 6 3 4 C)5 6 1 2 D)3 4 5 6(34)有以下程序#include <stdio.h>func(int n){ static int num=1;num=num+n;printf("%d",num);}void main(){ func(3);func(4);printf("\n"); }程序运行后的输出结果是A)4 8 B)3 4 C)3 5 D)4 5(35)有以下程序#include <stdio.h>#include <stdlib.h>fun(int *p1,int *p2,int *s){ s=(int*)malloc(sizeof(int));*s=*p1+*p2;free(s);}void main(){ int a=1,b=40,*q=&a;fun(&a,&b,q);printf("%d\n",*q);}程序运行后的输出结果是A)42 B)0 C)1 D)41(36)有以下程序#include <stdio.h>struct STU{char name[9];char sex;int score[2];};void f(struct STU a[]){ struct STU b={"zhao",'m',85,90};a[1]=b;}main(){ struct STU c[2]={{"Qian",'f',95,92},{"Sun",'m',98,99}};f(c);printf("%s,%c,%d,%d,",c[0].name,c[0].sex,c[0].score[0],c[0].score[1]); printf("%s,%c,%d,%d\n,",c[1].name,c[1].sex,c[1].score[0],c[1].score[1]); }程序运行后的输出结果是A)Zhao,m,85,90,Sun,m,98,99 B)Zhao,m,85,90, Qian,f,95,92C)Qian,f,95,92,Sun,m,98,99 D)Qian,f,95,92,Zhao,m,85,90(37)以下叙述中错误的是A)可以用trpedef 说明的新类型名来定义变量B)trpedef 说明的新类型名必须使用大写字母,否则会出编译错误C)用trpedef 可以为基本数据类型说明一个新名称D)用trpedef 说明新类型的作用是用一个新的标识符来代表已存在的类型名(38)以下叙述中错误的是A)函数的返回值类型不能是结构体类型,只能是简单类型B)函数可以返回指向结构体变量的指针C)可以通过指向结构体变量的指针访问所指结构体变量的任何成员D)只要类型相同,结构体变量之间可以整体赋值(39)若有定义语句int b=2; 则表达式(b<<2)/(3||b)的值是A)4 B)8 C)0 D)2(40)有以下程序#include <stdio.h>main(){ FILE *fp;int i,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w+");for(i=0;i<6;i++) fprintf(fp,"%d\n",a[i]);rewind(fp);for(i=0;i<6;i++) fscanf(fp,"%d",&a[5-i]);fclose(fp);for(i=0;i<6;i++) printf("%d",a[i]);}程序运行后的输出结果是A)4,5,6,1,2,3 B)1,2,3,3,2,1 C)1,2,3,4,5,6 D)6,5,4,3,2,1二、填空题(每空2 分,共30 分)(6)请写出与!(a<=b)等价的C语言表达式【6】。
2012全国大学生历年全国计算机等级考试_二级C语言上机考试题库及答案
1.填空给定程序的功能是调用fun函数建立班级通讯录。
通讯录中记录每位学生的编号,姓名和电话号码。
班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。
请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.c中不得增行或删行,也不得更改程序的结构!void check();/**********found**********/int fun(___1___ *std){/**********found**********/___2___ *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, ___3___);fclose(fp);return (1);}修改给定程序MODI1.C中函数fun的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串后面。
例如:当s中的字符串为:“ABCDE”时,则他中的字符串应为:“ABCDEEDCBA”。
请改正程序中的错误,使他能得出正确的结果。
注意:不要改动main函数,不能增行或删行,也不得更改程序的结构!void fun (char *s, char *t){ int i, sl;sl = strlen(s);/************found************/for( i=0; i<=s1; i ++)t[i] = s[i];for (i=0; i<sl; i++)t[sl+i] = s[sl-i-1];/************found************/t[sl] = '\0';}程序函数fun的功能是:将两个两位数的正整数a,b合并成一个整数放在c中。
2012 年9 月笔试真卷及答案详解
2012 年9 月笔试真卷及答案详解第1 页(共12 页)2012年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90 分钟,满分100 分)一、选择题((1)—(10)、(21)—(40)每题2 分,(11)—(20)每题1 分,共70 分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)下列链表中,其逻辑结构属于非线性结构的是A)双向链表B)带链的栈C)二叉链表D)循环链表(2)设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。
现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为A)20 B)0 或35C)15 D)16(3)下列关于栈的叙述中,正确的是A)栈底元素一定是最后入栈的元素B)栈操作遵循先进后出的原则C)栈顶元素一定是最先入栈的元素D)以上三种说法都不对(4)在关系数据库中,用来表示实体间联系的是A)网状结构B)树状结构C)属性D)二维表(5)公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。
则实体部门和职员间的联系是A)1:m联系B)m:n 联系C)1:1 联系D)m:1 联系(6)有两个关系R和S如下:R SA B C A B Ca 1 2 c 3 1b 2 1c 3 1则由关系R得到关系S的操作是A)自然连接B)并C)选择D)投影(7)数据字典(DD)所定义的对象都包含于A)软件结构图B)方框图C)数据流图(DFD图)D)程序流程图(8)软件需求规格说明书的作用不包括A)软件设计的依据B)软件可行性研究的依据C)软件验收的依据D)用户与开发人员对软件要做什么的共同理解(9)下面属于黑盒测试方法的是A)边界值分析B)路径覆盖C)语句覆盖D)逻辑覆盖(10)下面不属于软件设计阶段任务的是A)制定软件确认测试计划B)数据库设计C)软件总体设计D)算法设计2012 年9 月笔试真卷及答案详解第2 页(共12 页)(11)以下叙述中正确的是A)在C语言程序中,main 函数必须放在其他函数的最前面B)每个后缀为.C的C语言源程序都可以单独进行编译C)在C语言程序中,只有main 函数才可单独进行编译D)每个后缀为.C的C语言源程序都应该包含一个main函数(12)C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是A)预定义标识符(如库函数中的函数名)可用作用户标识符,但失去原有含义B)用户标识符可以由字母和数字任意顺序组成C)在标识符中大写字母和小写字母被认为是相同的字符D)关键字可用作用户标识符,但失去原有含义(13)以下选项中表示一个合法的常量是(说明:符号□表示空格)A)9□9□9 B)0Xab C)123E0.2 D)2.7e(14)C语言主要是借助以下哪个功能来实现程序模块化A)定义函数B)定义常量和外部变量C)三种基本结构语句D)丰富的数据类型(15)以下叙述中错误的是A)非零的数值型常量有正值和负值的区分B)常量是在程序运行过程中值不能被改变的量C)定义符号常量必须用类型名来设定常量的类型D)用符号名表示的常量叫符号常量(16)若有定义和语句:int a,b; scanf("%d,%d",&a,&b); 以下选项中的输入数据,不能把值3 赋给变量a、5 赋给变量b 的是A)3,5, B)3,5,4 C)3 ,5 D)3,5(17)C语言中char 类型数据占字节数为A)3 B)4 C)1 D)2(18)下列关系表达式中,结果为“假”的是A)(3+4)>6 B)(3!=4)>2 C)3<=4||3 D)(3<4)==1(19)若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch 语句是A)switch(a+9) B)switch a*b{ case c1:y=a-b; { case 10:x=a+b;case c1:y=a+b; default :y=a-b;} }C)switch(a+b) D)switch (a*b+b*b){ case1 : case3:y=a+b;break; { default :break;case0 : case4:y=a-b; case 3:y=a+b; break;} case 2:y=a-b; break;}(20)有以下程序# include <stdio.h>main(){int a=-2,b=0;while(a++&&++b);printf("%d,%d\n",a,b);}程序运行后的输出结果是A)1,3 B)0,2 C)0,3 D)1,2(21)设有定义:int x=0,*p;,立即执行以下语句,正确的语句是A)p=x; B)*p=x; C)p=NULL; D)*p=NULL;2012 年9 月笔试真卷及答案详解第3 页(共12 页)(22)下列叙述中正确的是A)可以用关系运算符比较字符串的大小B)空字符串不占用内存,其内存空间大小是0C)两个连续的单引号是合法的字符常量D)两个连续的双引号是合法的字符串常量(23)有以下程序#include <stdio.h>main(){char a='H';a=(a>='A'&&a<='Z')?(a-'A'+'a'):a;printf("%c\n",a);}程序运行后的输出结果是A)A B)a C)H D)h(24)有以下程序#include <stdio.h>int f(int x);main(){ int a,b=0;for(a=0;a<3;a++){b=b+f(a);putchar('A'+b);}}int f(int x){return x*x+1;}程序运行后的输出结果是A)ABE B)BDI C)BCF D)BCD(25)设有定义:int x[2][3];,则以下关于二维数组x 的叙述错误的是A)x[0]可看作是由3 个整型元素组成的一维数组B)x[0]和x[1]是数组名,分别代表不同的地址常量C)数组x 包含6 个元素D)可以用语句x[0]=0;为数组所有元素赋初值0(26)设变量p 是指针变量,语句p=NULL;,是给指针变量赋NULL 值,它等价于A)p=""; B)p='0'; C)p=0; D)p='';(27)有以下程序#include <stdio.h>main(){ int a[]={10,20,30,40},*p=a,i;for(i=0;i<=3;i++){a[i]=*p;p++;}printf("%d\n",a[2]);}A)30 B)40 C)10 D)20(28)有以下程序#include <stdio.h>#define N 3void fun(int a[][N],int b[]){ int i,j;for(i=0;i<N;i++)2012 年9 月笔试真卷及答案详解第4 页(共12 页){ b[i]=a[i][0];for(j=1;j<N;j++)if(b[i]<a[i][j]) b[i]=a[i][j];}}main(){ int x[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;fun(x,y);for(i=0;i<N;i++) printf("%d,",y[i]);printf("\n");}A)2,4,8 B)3,6,9 C)3,5,7 D)1,3,5(29)有以下程序(strcpy 为字符串复制函数,strcat 为字符串连接函数)#include <stdio.h>#include <string.h>main(){ char a[10]="abc",b[10]="012",c[10]="xyz";strcpy(a+1,b+2);puts(strcat(a,c+1));}程序运行后的输出结果是A)a12xyz B)12yz C)a2yz D)bc2yz(30)以下选项中,合法的是A)char str3[]={'d', 'e', 'b', 'u', 'g', '\0'};B)char str4; str4="hello world";C)char name[10]; name="china";D)char str1[5]= "pass",str2[6]; str2=str1;(31)有以下程序#include <stdio.h>main(){ char *s="12134";int k=0,a=0;while(s[k+1]!='\0'){ k++;if(k%2==0){a=a+(s[k]-'0'+1);continue;}a=a+(s[k]-'0');}printf("k=%d a=%d\n",k,a);}程序运行后的输出结果是A)k=6 a=11 B)k=3 a=14 C)k=4 a=12 D)k=5 a=15 (32)有以下程序#include <stdio.h>main(){ char a[5][10]={"one","two","three","four","five"};int i,j;char t;for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(a[i][0]>a[j][0])2012 年9 月笔试真卷及答案详解第5 页(共12 页){ t=a[i][0];a[i][0]=a[j][0];a[j][0]=t;}puts(a[1]);}程序运行后的输出结果是A)fwo B)fix C)two D)owo(33)有以下程序#include <stdio.h>int a=1,b=2;void fun1(int a, int b){ printf(“%d%d”,a,b); }void fun2( ){ a=3; b=4; }main(){ fun1(5,6); fun2();printf("%d%d\n",a,b);}程序运行后的输出结果是A)1 2 5 6 B)5 6 3 4 C)5 6 1 2 D)3 4 5 6(34)有以下程序#include <stdio.h>func(int n){ static int num=1;num=num+n;printf("%d",num);}void main(){ func(3);func(4);printf("\n"); }程序运行后的输出结果是A)4 8 B)3 4 C)3 5 D)4 5(35)有以下程序#include <stdio.h>#include <stdlib.h>fun(int *p1,int *p2,int *s){ s=(int*)malloc(sizeof(int));*s=*p1+*p2;free(s);}void main(){ int a=1,b=40,*q=&a;fun(&a,&b,q);printf("%d\n",*q);}程序运行后的输出结果是A)42 B)0 C)1 D)41(36)有以下程序#include <stdio.h>struct STU{char name[9];char sex;int score[2];};void f(struct STU a[]){ struct STU b={"zhao",'m',85,90};a[1]=b;2012 年9 月笔试真卷及答案详解第6 页(共12 页)}main(){ struct STU c[2]={{"Qian",'f',95,92},{"Sun",'m',98,99}};f(c);printf("%s,%c,%d,%d,",c[0].name,c[0].sex,c[0].score[0],c[0].score[1]); printf("%s,%c,%d,%d\n,",c[1].name,c[1].sex,c[1].score[0],c[1].score[1]); }程序运行后的输出结果是A)Zhao,m,85,90,Sun,m,98,99 B)Zhao,m,85,90, Qian,f,95,92C)Qian,f,95,92,Sun,m,98,99 D)Qian,f,95,92,Zhao,m,85,90(37)以下叙述中错误的是A)可以用trpedef 说明的新类型名来定义变量B)trpedef 说明的新类型名必须使用大写字母,否则会出编译错误C)用trpedef 可以为基本数据类型说明一个新名称D)用trpedef 说明新类型的作用是用一个新的标识符来代表已存在的类型名(38)以下叙述中错误的是A)函数的返回值类型不能是结构体类型,只能是简单类型B)函数可以返回指向结构体变量的指针C)可以通过指向结构体变量的指针访问所指结构体变量的任何成员D)只要类型相同,结构体变量之间可以整体赋值(39)若有定义语句int b=2; 则表达式(b<<2)/(3||b)的值是A)4 B)8 C)0 D)2(40)有以下程序#include <stdio.h>main(){ FILE *fp;int i,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w+");for(i=0;i<6;i++) fprintf(fp,"%d\n",a[i]);rewind(fp);for(i=0;i<6;i++) fscanf(fp,"%d",&a[5-i]);fclose(fp);for(i=0;i<6;i++) printf("%d",a[i]);}程序运行后的输出结果是A)4,5,6,1,2,3 B)1,2,3,3,2,1 C)1,2,3,4,5,6 D)6,5,4,3,2,1二、填空题(每空2 分,共30 分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
2012年9月国家计算机二级C语言上机考试题库
2012年9月全国计算机考试上机题库100套第01套:给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。
例如,输入一个数:27638496,新的数:为739。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!给定源程序:#include <stdio.h>void fun(unsigned long *n){ unsigned long x=0, i; int t;i=1;while(*n){ t=*n % __1__;if(t%2!= __2__){ x=x+t*i; i=i*10; }*n =*n /10;}*n=__3__;}main(){ unsigned long n=-1;while(n>99999999||n<0){ printf("Please input(0<n<100000000): "); scanf("%ld",&n); }fun(&n);printf("\nThe result is: %ld\n",n);}解题思路:第一处:t是通过取模的方式来得到*n的个位数字,所以应填:10。
第二处:判断是否是奇数,所以应填:0。
第三处:最后通形参n来返回新数x,所以应填:x。
给定程序MODI1.C中函数fun 的功能是:计算n!。
例如,给n输入5,则输出120.000000。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include <stdio.h> double fun ( int n ){ double result = 1.0 ;if n = = 0return 1.0 ;while( n >1 && n < 170 )result *= n--return result ;}main ( ){ int n ;printf("Input N:") ;scanf("%d", &n) ;printf("\n\n%d! =%lf\n\n", n,fun(n)) ;}解题思路:第一处:条件语句书写格式错误,应改为:if (n==0)。
2012年9月 全国计算机等级考试 二级C语言 笔试试卷、答案及解析
2012年9月22日网上发布的全国计算机等级考试二级C语言笔试答案一、选择题:(1)C、(2)B、(3)B、(4)D、(5)A(6)C、(7)C、(8)B、(9)A、(10)A(11)B、(12)A、(13)B、(14)A、(15)C(16)C、(17)C、(18)B、(19)D、(20)D(21)B、(22)D、(23)D、(24)B、(25)D(26)C、(27)A、(28)B、(29)C、(30)A(31)C、(32)A、(33)B、(34)A、(35)D(36)D、(37)B、(38)A、(39)B、(40)D二、填空题【1】6【2】20【3】逻辑独立【4】选择【5】系统软件【6】a>b【7】%lf%f【8】224【9】16【10】4321【11】7【12】22【13】2【14】6【15】p=p->next2012年9月22日评阅者注释的全国计算机等级考试二级C语言笔试答案一、选择题:(1)C、(2)B、(3)B、(4)D、(5)A(6)C、(7)C、(8)B、(9)A、(10)A(11)B、(12)A、(13)B、(14)A、(15)C(16)C、(17)C、(18)B、(19)D、(20)D(21)B?、(22)D、(23)D、(24)B、(25)D(26)C?、(27)A、(28)B、(29)C、(30)A(31)C、(32)A、(33)B、(34)A、(35)D(36)D、(37)B、(38)A、(39)B、(40)D二、填空题【1】6【2】20【3】逻辑独立性【4】选择【5】系统软件【6】a>b【7】%lf%f【8】224【9】16【10】4321【11】7【12】22【13】2【14】6【15】p=p->next2012年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题(⑴-(10)、(21)-(40)每题2分,(11)-(20)每题1分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、1、程序填空题给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写在文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。
填空:(1)FILE* (2)fclose(fp) (3)fp改错:(1)t=(STU *)calloc(sizeof(STU),m); (2)t[k]=b[j];编程:int i,t,j=0,*p=a;t=p[0];for(i=0;i<=n;i++)if(t=p[i]) ;else { a[j]=t; t=p[i]; j++;}if(i>=n) a[j]=t;return j;二、1、程序填空题给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。
例如,从主函数输入一个整数:27638496 函数返回值为26846。
填空:(1)1 (2)s (3)i*10改错:(1)int fun(int n,int xx[][M]); (2)printf(“%4d”,xx[i][j]);编程:*c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10);最后在黑色对话框中输入45 12后按回车键三、1、程序填空题给定程序中,函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。
例如,当x值为5时,100~999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500,共有15个。
当x值为27时,各位数字之和为27的整数是:999,只有1个。
填空:(1)999 (2)t/10 (3)x改错:(1)void fun(long s,long *t) (2)while(s>0)编程:(注意:此题在/*请按题目要求完成以下代码*/的下面填入答案)if(a[i].s < a[j].s){tmp=a[i]; a[i]=a[j]; a[j]=tmp; }四、1、程序填空题给定程序中,函数fun的功能是:找出100至x(x<999)之间各位上的数字之和为15的所有整数,然后输出;符合条件的整数个数作为函数值返回。
例如,当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。
共有26个。
填空:(1)0 (2)x (3)t++改错:(1)int i,s1; (2)t[i]=s[s1-1-i];编程:*c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10;最后在黑色对话框中输入45 12后按回车键五、1、程序填空题给定程序中,函数fun的功能是计算下式s=1/(2*2)+3/(4*4)+5/(6*6)+…+(2n-1)/(2n*2n)直到|(2n-1)/(2n*2n)|<=1e-3,函数的返回值2.985678。
填空:(1)0 (2)i++ (3)2.0*i改错:(1)void fun(char *s,char *t) (2)t[2*d]=’\0’;编程:int i,j=0;for(i=1;i<strlen(s);i+=2)if(i%2==1 && s[i]%2==1)t[j++]=s[i];t[j]= ‟\0‟;最后在黑色对话框中输入ABCDEFG123456后按回车键六、1、程序填空题函数fun的功能是:统计长整数的各个位上出现数字1、2、3的次数,并通过外部(全局)变量c1、c2、c3返回主函数。
例如,当n=123114350时,结果应该为:c1=3 c2=1 c3=2。
填空:(1)n%10 (2)break (3)break改错:(1)if(t==0) (2)*zero=count;编程:double s=0,t=1;int i;for(i=1;i<=n;i++){t*=i; s+=1.0/t;}return s;最后在黑色对话框中输入50后按回车键七、1、程序填空题给定程序中,函数fun的功能是:统计出带有头结点的单向链表中结点的个数,存放在形参n 所指的存储单元中。
填空:(1)*n (2)next (3)head改错:(1)a=NULL; (2)if(*r==*p)编程:*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);最后在黑色对话框中输入45 12后按回车键八、1、程序填空题给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。
当调用正确时, 程序输出 x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000填空:(1)double (2)f1 (3)f2改错:(1)char *fun(char *s,char *t) (2)ss++; (3)tt++;编程:int i;for(i=0;i<m;i++)fun1(w);最后在黑色对话框中输入3后按回车键九、1、程序填空题函数fun的功能是:从三个形参a,b,c中找出中间的那个数,作为函数值返回。
例如,当a=3,b=5,c=4时,中数为4。
填空:(1)a (2)a (3)b改错:(1)c=c+32;(把大写C改成小写) (2)c=c+5;编程:int i;double fac=1.0;double sum=1.0;for(i=2;i<=n;i++){ fac+=sqrt(i); sum+=fac; }最后在黑色对话框中输入20后按回车键十、1、程序填空题给定程序中,函数fun的功能是,将形参s所指字符串中的字母字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。
例如:s所指字符串为:asd123fgh543df,处理后新字符串为asdfghdf123543。
填空:(1)s[i] (2)k (3)0改错:(1)while(*w) (2)if(*r==*p)编程:int i,j=0;for(i=0;i<strlen(s);i++)if(!(s[i]%2)) t[j++]=s[i];t[j]=‟\0‟;最后在黑色对话框中输入ABCDEFG12345后按回车键十一、1、程序填空题给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序链接。
函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。
填空:(1)q (2)next (3) next改错:(1);(少了分号) (2){p=j;t=a[p];a[p]=a[i];a[i]=t;}编程:int i;*n=0;for(i=7;i<=m;i++)if((i%7 == 0) || (i%11 == 0))a[(*n)++]=i;十二、1、程序填空题给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。
填空:(1)*std (2)std[i].age (3)改错:(1)void fun(int *a,int *b) (2)t=*b;*b=*a;*a=t;编程:int i,j,min,k;for(i=0;i<N;i++){ min=tt[0][i];k=0;for(j=1;j<M;j++)if(tt[j][i]<min){ min=tt[j][i]; k=j;}pp[i]=tt[k][i];}十三、1、程序填空题给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。
字符串数组中共有M个字符串,且串长<N。
填空:(1)k (2)len (3)ss[i][j]改错:(1)result*=n--; (2)return result;(把横线改成result)编程:char *p=s;int i=0;while(*p){ if(*p!=c) s[i++]=*p; p++; }s[i]=‟\0‟;最后在黑色对话框中输入n后按回车键十四、1、程序填空题给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。
ss所指字符串数组中共有M个字符串,且串长<N。
填空:(1)ss[i] (2)j+n (3)1改错:(1)if(*p == ‘’) (2);(后面缺少分号)编程:char ch;int i,j;for(i=1;i<6;i++)for(j=i+1;j<6;j++){ if (*(s+i) < *(s+j) ){ ch=*(s+j); *(s+j)= *(s+i); *(s+i) = ch;}}最后在黑色对话框中输入CEAedca后按回车键十五、1、程序填空题函数fun的功能是:计算f(x)=1+x+x2∕2!+…+xn/n! 直到∣xn/n!∣<10-6 若x=2.5,函数值为:12.182494。
填空:(1)x (2)n (3)t改错:(1)d=1;s=0; (2)d=d/10;(是除号)编程:int i;double s=0;for(i=0;i<8;i++) s+=sqrt((x[i]+x[i+1])/2);return s;1、程序填空题给定程序中,函数fun的功能是:在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变,在主函数中输出处理后的数据序列,并将中间数作为函数值返回。
例如,有9个正整数:1 5 7 23 87 5 8 21 45按升序排列时的中间数为:8处理后主函数中输出的数列为:8 8 8 23 87 8 8 21 45填空:(1)b[k] (2)N/2 (3)<改错:(1)int t[N],i,num=0; (2)t[num++]=b[i]; (3)for(i=0;i<num;i++)编程:int fun(char *s){ int n=0;while(*s){ if (*s>=‟0‟ && *s<=‟9‟) s++;}return n;}十七、1、程序填空题给定程序中,函数fun的功能是:统计整型变量m中各数字出现的次数,并存放到数组a中,其中:a[0]存放0出现的次数,a[1]存放1出现的次数,……a[9]存放9出现的次数。