下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机二级 c 语言历年真题及答案【篇一:国家计算机二级 c 语言历年真题及答案】class=txt>c 语言程序设计考试时间 90 分钟,总分值 100 分一、选择题 110、 2140每题 2分, 1120每题 1分,共 70 分1以下数据构造中,属于非线性构造的是a 循环队列b) 带链队列c) 二叉树d 带链栈2以下数据结果中,能够按照 “先进后出原那么存取数据的是a) 循环队列b) 栈c) 队列d) 二叉树3对于循环队列,以下表达中正确的选项是a 队头指针是固定不变的b 队头指针一定大于队尾指针c 队头指针一定小于队尾指针d 队头指针可以大于队尾指针,也可以小于队尾指针4算法的空
2、间复杂度是指a 算法在执行过程中所需要的计算机存储空间b 算法所处理的数据量c 算法程序中的语句或指令条数d 算法在执行过程中所需要的临时工作单元数5软件设计中划分模块的一个准那么是a) 低内聚低耦合b) 高内聚低耦合c) 低内聚高耦合d) 高内聚高耦合6以下选项中不属于构造化程序设计原那么的是a) 可封装d) 自顶向下c) 模块化d) 逐步求精7软件详细设计产生的图如下: 该图是a) n-s 图b) pad 图c) 程序流程图d) e-r 图8数据库管理系统是a 操作系统的一局部b) 在操作系统支持下的系统软件c) 一种编译系统d) 一种操作系统9在 e-r 图中,用来表示实体联系的图形是a
3、) 椭圆图b) 矩形c) 菱形d) 三角形10 有三个关系 r,s 和 t 如下:其中关系 t 由关系 r 和 s 通过某种操作得到,该操作为a) 选择b) 投影c) 交d) 并11以下表达中正确的选项是a 程序设计的任务就是编写程序代码并上机调试b 程序设计的任务就是确定所用数据构造c 程序设计的任务就是确定所用算法d以上三种说法都不完整12以下选项中,能用作用户标识符的是a voidb 8_8c _0_d unsigned 13阅读以下程序#include main() int case; float printf;printf( 请“输入 2 个数: ); scanf( “ %d %f
4、,case,pjrintf);printf( “ %d %nf ,case,printf);该程序编译时产生错误,其出错原因是a 定义语句出错, case 是关键字,不能用作用户自定义标识符b 定义语句出错, printf 不能用作用户自定义标识符c 定义语句无错, d 定义语句无错,scanf 不能作为输入函数使用printf 不能输出 case 的值14 表达式: (int)(double)9/2)-(9)%2 的值是a0 b3 c4 d515 假设有定义语句: int x=10; ,那么表达式 x-=x+x 的值为 a-20b-10c0d1016有以下程序#includemain() i
5、nt a=1,b=0;printf( “ %d,b=a+b);printf( “ %nd ,a=2*b); 程序运行后的输出结果是 a0,0c3,2d 1,217 设有定义:int a=1,b=2,c=3; ,以下语句中执行效果与其它三个不同的是a if(ab) c=a,a=b,b=c;b if(ab) c=a,a=b,b=c; c if(ab) c=a;a=b;b=c;d if(ab) c=a;a=b;b=c; 18有以下程序 #include main() int c=0,k;for (k=1;k3;k+) switch (k) default: c+=k case 2: c+;break
6、; case 4: c+=2;break;printf( “ %nd ,c); 程序运行后的输出结果是 a3 b5 c7 d919 以下程序段中,与语句: k=ab?(bc?1:0):0 ;功能一样的是 a if(ab)(bc) k=1;else k=0;b if(ab)|(bc) k=1;else k=0;c if(a=b) k=0;else if(b=c) k=1; d if(ab) k=1;else if(bc) k=1; else k=0;20 有以下程序 #include char s=“ 012xy;int i,n=0;for(i=0;si!=0;i+) if(si= '
7、a' si= 'z') n+; printf( “ %nd ,n);程序运行后的输出结果是a0b2c3d521有以下程序#includemain() int n=2,k=0; while(k+n+2); printf( “%d %nd ,k,n);程序运行后的输出结果是 a 0 2 b1 3 c5 7 d1 222有以下定义语句,编译时会出现编译错误的选项是achar a='a'bchar a='n'cchar a='aa'dchar a='x2d'23有以下程序#includemain() char c1
8、,c2;c1='a'+-'84'c2='a'+-'85'printf( “%c,%nd ,c1,c2);字母 a 的 ascii 码为 65 ,程序运行后的输出结果是 a e,68【篇二: 2021 年三月全国计算机二级 c 语言上机考试题库】txt> 题库 100 套第 01 套:给定程序中,函数 fun 的功能是:将形参 n 所指变量中,各位上为 偶数的数去 除 ,剩余的数按原来从高位到低位的顺序组成一个新的数, 并通过形参指针 n 传回 所指变量。例如,输入一个数: 27638496 ,新的数:为 739 。 请在程序
9、的下划 线处填入正确的内容并把下划线删除 , 使程序得出正确的结果。 注意: 源程序存放在考生文件夹下的 blank1.c 中。不得增行或删行,也不得更改程序的构造! 给定源程序: #include stdio.hvoid 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(n99999999|n0) printf(pleas
10、e input(0n100000000): ); scanf(%ld,n); fun(n);printf(nthe result is: %ldn,n); 解题思路:第一处: t 是通过取模的方式来得到 *n 的个位数字,所以应填: 10 第二处:判断是否是奇数,所以应填: 0。第三处:最后通形参 n 来返回新数 x ,所以应填: x。 给定程序 modi1.c 中函数 fun 的功能是:计算 n! 。 例如,给 n 输入 5,那么输出 120.000000 。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的 构造!给定源程序:
11、#include stdio.hdouble fun ( int n ) double result = 1.0 ; if n = = 0 return 1.0 ; while( n 1 n 170 ) result *= n- return result ; main ( ) int n ;printf(input n:) ; scanf(%d, n) ; printf(nn%d! =%lfnn, n, fun(n) ; 解题思路: 第一处:条件语句书写格式错误,应改为: if (n=0) 。 第二处:语句后缺少分号。请编写一个函数 fun ,*它的功能是:将一个数字字符串转换为一个整数 (
12、不得调用 c 语言提 供的将字符串转换为整数的。例如,假设输入字符串 -1234, 那么函数 把它转换为整数值 -1234 。函数 fun 中给出的语句仅供参考。注意 : 局部源程序存在文件 prog1.c 文件中。 请勿改动主函数 main 和其它函数中的任何内容, 仅在函数 fun 的 花括号中填入你编写的假设干语句。 给定源程序: #include stdio.h #include string.h long fun ( char *p)int i, len, t; /* len 为串长, t 为正负标识 */ long x=0; len=strlen(p); if(p0=-) t=-1
13、; len-; p+; else t=1;/* 以下完成数字字符串转换为一个数字 */ return x*t; main() /* 主函数 */ char s6; long n;printf(enter a string:n) ; gets(s); n = fun(s); printf(%ldn,n); nono ( ); nono ( )/* 本函数用于翻开文件,输入数 据,调用函数,输出数据,关闭 文件。 */ file *fp, *wf ; int i ; char s20 ; long n ;fp = fopen(c:testin.dat,r) ; wf = fopen(c:testo
14、ut.dat,w) ; for(i = 0 ; i 10 ; i+) fscanf(fp, %s, s) ; n = fun(s);fprintf(wf, %ldn, n) ; fclose(fp) ; fclose(wf) ; 解题思路: 此题是将一个数字字符串转换为一个整数。 参考答案: #include stdio.h #include string.h long fun ( char *p) int i, len, t; /* len 为串长, t 为正负标识 */ long x=0; len=strlen(p); if(p0=-) t=-1; len-; p+; else t=1;/
15、* 以下完成数字字符串转换为一个数字 */ while(*p) x = x*10-48+(*p+); return x*t; main() /* 主函数 */ char s6; long n; printf(enter a string:n) ; gets(s); n = fun(s); printf(%ldn,n); nono ( ); nono ( )/* 本函数用于翻开文件,输入数据,调用函数,输出数据,关闭文 件。 */ file *fp, *wf ; int i ;char s20 ; long n ;fp = fopen(c:testin.dat,r) ; wf = fopen(c
16、:testout.dat,w) ;for(i = 0 ; i 10 ; i+) fscanf(fp, %s, s) ; n = fun(s);fprintf(wf, %ldn, n) ; fclose(fp) ; fclose(wf) ; 注意:由于 nono( ) 这个函数是改卷人 用的,与考生没有什么关系,故下面从第 2 套试题开场均省略 nono( ) 第 02 套: 给定程序中 ,函数 fun 的功能是将形参给定的字符串、整数、浮点数 写到文本 文件中,再用字符方式从此文本文件中逐个读入并显示在 终端屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除 , 使程序得出正确的结果。
17、注意:源程序存放在考生文件夹下的 blank1.c 中。不得增行或删行,也不得更改程序的构造! 给定源程序:#include stdio.hvoid fun(char *s, int a, double f) _1_ fp; char ch;fp = fopen(, w);fprintf(fp, %s %d %fn, s, a, f); fclose(fp);fp = fopen(, r); printf(nthe result :nn); ch = fgetc(fp);while (!feof(_2_) putchar(_3_); ch = fgetc(fp); putchar(n); fc
18、lose(fp); main() char a10=hello!; int b=12345; double c= 98.76; fun(a,b,c); 解题思路: 此题是考察先把给定的数据写入到文本文件中,再从该文件读出并 显示在屏幕上。第一处:定义文本文件类型变量,所以应填: file * 。 第二处:判断文件是否完毕,所以应填: fp 。 第三处:显示读出的字符,所以应填: ch 。*给定程序 modi1.c 中函数 fun 的功能是 : 依次取出字符串中所有数 字字符, 形成新的字符串 , 并取代原字符串。请改正函数 fun 中指定部位的错误 , 使它能得出正确的结果。 注意: 不要改动
19、 main 函数, 不得增行或删行 , 也不得更改程序的构造 ! 给定源程序: #include stdio.h void fun(char *s) int i,j;for(i=0,j=0; si!=0; i+) if(si=0 si=9) sj=si; sj=0; main() char item80; printf(nenter a string : );gets(item); printf(nnthe string is : %sn,item); fun(item); printf(nnthe string of changing is : %sn,item ); 解题思路: 第一处 :
20、 要求是取出原字符串中所有数字字符组成一个新的字符串, 程序中是使用变量 j 来控制新字符串的位置,所以应改为: sj+=si; 。第二处 : 置新字符串的完毕符,所以应改为: sj=0;. *请编写函数 fun, 函数的功能是 : 将 m 行 n 列的二维数组中的字符数 据 , 按列的顺序依次放到一个字符串中。 例如, 二维数组中的数据为 : w w w w s s s s h h h h那么字符串中的内容应是 : wshwshwsh 。 注意:局部源程序在文件 prog1.c 中。请勿改动主函数 main 和其它函数中的任何内容 , 仅在函数 fun 的花 括号中填入你编写的假设干语句。
21、给定源程序: #include stdio.h #define m 3 #define n 4void fun(char sn, char *b) int i,j,n=0;for(i=0; i n;i+) /* 请填写相应语句完成其功能 */ bn=0; main() char a100,wmn=w,w,w,w,s,s,s,s,h,h,h,h; int i,j;printf(the matrix:n); for(i=0; im; i+) for(j=0;jn; j+)printf(%3c,wij); printf(n); fun(w,a);printf(the a string:n);puts
22、(a); printf(nn); nono(); 解题思路: 此题是把二维数组中的字符数据按列存放到一个字符串中。 1. 计算 存放到一维数组中的位置。2. 取出二维数组中的字符存放到一维数组已计算出的位置中。 参考答案:void fun(char sn, char *b) int i,j,n=0;for(i=0; i n;i+) /* 请填写相应语句完成其功能 */ for(j = 0 ; j m ; j+) bn = sji ; n = i * m + j + 1; bn=0; 第 03 套: 程序通过定义学生构造体变量,存储了学生的学号、姓名和3 门课的成绩。所有学生数据均以二进制方式输
23、出到文件中。函数fun 的功能是重写形参所 指文件中最后一个学生的数据,即用新的学生数 据覆盖该学生原来的数据 ,其它学 生的数据不变。 请在程序的下划 线处填入正确的内容并把下划线删除 , 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 blank1.c 中。 不得增行或删行,也不得更改程序的构造! 给定源程序: #include stdio.h #define n 5 typedef struct student long sno;char name10; float score3; stu; void fun(char *, stu n) file *fp;fwrite(n,
24、sizeof(stu), 1, _3_); fclose(fp); main() stu tn= 10001,machao, 91, 92, 77, 10002,caokai, 75, 60,88,10003,lisi, 85, 70, 78, 10004,fangfang, 90, 82, 87,10005,zhangsan, 95, 80, 88; stu n=10006,zhaosi, 55, 70, 68, ssn;int i,j; file *fp;fp = fopen(student.dat, wb); fwrite(t, sizeof(stu), n, fp); fclose(f
25、p);fp = fopen(student.dat, rb); fread(ss, sizeof(stu), n, fp); fclose(fp);printf(nthe original data :nn); for (j=0; jn; j+) printf(nno: %ld name: %-8s scores: ,ssj.sno, );for (i=0; i3; i+) printf(%6.2f , ssj.scorei); printf(n); fun(student.dat, n); printf(nthe data after modifing :nn); fp =
26、fopen(student.dat, rb); fread(ss, sizeof(stu), n, fp); fclose(fp);for (j=0; jn; j+) printf(nno: %ld name: %-8s scores: ,ssj.sno, );for (i=0; i3; i+) printf(%6.2f , ssj.scorei); printf(n); 解题思路: 此题是考察如何从文件中读出数据,再把构造中的数据写入文件中。第一处:从指定的文件中读出数据,所以应填:。 第二处:读取文件 fp 的最后一条记录,所以应 填: fp 。第三处:再把读出的记录,写入
27、文件 fp 指定的位置上,所以应填: fp 。*给定程序 modi1.c 中的函数 creatlink 的功能是创立带头结点的单 向链表,并为各结点数据域赋0到m-1的值。请改正函数 creatlink 中指定部位的错误 , 使它能得出正确的结果。 注意: 不要改动 main 函数, 不得增行或删行 , 也不得更改程序的构造 给定源程序: #include stdio.h #include stdlib.h typedef struct aa int data;struct aa *next; node;node *creatlink(int n, int m) node *h=null, *
28、p, *s; int i;p=(node )malloc(sizeof(node); h=p;p-next=null; for(i=1; i=n; i+) s=(node *)malloc(sizeof(node); s-data=rand()%m; s-next=p-next;p-next=s; p=p-next; return p; outlink(node *h) node *p; p=h-next;printf(nnthe list :nn head );while(p) printf(-%d ,p-data); p=p-next; printf(n); main() node *he
29、ad;head=creatlink(8,22); outlink(head); 解题思路:第一处 : 指向刚分配的构造指针,所以应改为: p=(node *)malloc(sizeof(node);第二处 : 在动态分配内存的下一 行语句是,使用临时构造指针变量 h 保存 p 指针的初始位置,最后 返回不能使用p,是因为p的位置已经发生了变化,所以应改为返回 h。*请编写函数 fun, 函数的功能是 :统计一行字符串中单词的个数 ,作为 函数值返 回。一行字符串在主函数中输入 , 规定所有单词由小写字母 组成,单词之间由假设干 个空格隔开 , 一行的开场没有空格。 注意: 局部源程序在文件 p
30、rog1.c 中。请勿改动主函数 main 和其它函数中的任何内容 , 仅在函数 fun 的花 括号中填入你编写的假设干语句。 给定源程序: #include stdio.h #include string.h #define n 80 int fun( char *s) main() char linen; int num=0;printf(enter a string :n); gets(line);num=fun( line );printf(the number of word is : %dnn,num); nono(); 解题思路:此题是统计字符串中的单词数。 1. 利用 whil
31、e 循环语句和指针变量, 当字符为空格时,那么单词数 k 加 1。2. 循环完毕返回 k 。 参考答案: int fun( char *s) int k = 1 ; while(*s) if(*s = ) k+ ; s+ ; return k ; 第 04 套: 程序通过定义学生构造体变量,存储了学生的学号、姓名和3 门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun 的功能是从形参所指的文 件中读入学生数据,并按照学号从小到大排序后 ,再用二进制方式把 排序后的学生数据输出到所指的文件中,覆盖原来的文件内容。 请在程序的下划线处填入正确的内容并把下划线删除 , 使程序得出正 确的
32、结果。注意:源程序存放在考生文件夹下的 blank1.c 中。 不得增行或删行,也不得更改程序的构造! 给定源程序: #include stdio.h #define n 5typedef struct student long sno;char name10; float score3; stu;void fun(char *) file *fp; int i, j; stu sn, t;fp = fopen(, _1_); fread(s, sizeof(stu), n, fp); fclose(fp);for (i=0; in-1; i+) for (j=i+1; jn; j+)if (
33、si.sno _2_ sj.sno) t = si; si = sj; sj = t; fp = fopen(, wb);_3_(s, sizeof(stu), n, fp); /*二进制输出 */ fclose(fp); main() stu tn= 10005,zhangsan, 95, 80, 88, 10003,lisi, 85, 70, 78,10002,caokai, 75, 60, 88, 10004,fangfang, 90, 82, 87, 10001,machao, 91, 92, 77, ssn;int i,j; file *fp;fp = fopen(student.d
34、at, wb); fwrite(t, sizeof(stu), 5, fp); fclose(fp); printf(nnthe original data :nn); for (j=0; jn; j+) printf(nno: %ld name: %-8s scores: ,tj.sno, ); for (i=0; i3; i+) printf(%6.2f , tj.scorei); printf(n); fun(student.dat); printf(nnthe data after sorting :nn); fp = fopen(student.dat, rb);fre
35、ad(ss, sizeof(stu), 5, fp); fclose(fp);for (j=0; jn; j+) printf(nno: %ld name: %-8s scores: ,ssj.sno, );for (i=0; i3; i+) printf(%6.2f , ssj.scorei); printf(n); 解题思路: 此题是考察把构造中的数据写入文件。 第一处:建立文件的类型,考虑到是把构造中的数据构造中的数 据包含不打印的字符 从文件中读出,所以应填: rb 。 第二处:判断当前学号是否大于刚 读出的学号进展相比,如果大于,那么进展交换,所以应填:。 第 三处:
36、把已排序的构造数据,重新写入文件,所以应填: fwrite 。*给定程序 modi1.c 中函数 fun 的功能是 : 在字符串的最前端参加 n 个*号, 形成新串 , 并且覆盖原串。 注意: 字符串的长度最长允许为 79。请改正函数 fun 中指定部位的错误 , 使它能得出正确的结果。 注意: 不要改动 main 函数, 不得增行或删行 , 也不得更改程序的构造 给定源程序: #include stdio.h #include string.hvoid fun ( char s, int n ) char a80 , *p; int i; s=p; for(i=0; in; i+) ai=*
37、; do ai=*p; i+; while(*p+) ai=0; strcpy(s,a); main() int n; char s80;printf(nenter a string : ); gets(s); printf(nthe string %sn,s); printf(nenter n ( number of * ) : ); scanf(%d,n); fun(s,n); printf(nthe string after insert :%s n ,s); 解题思路: 第一处 : 指针 p 应指向 s ,所以应改为: p=s; 。 第二处 : 死循环,当 do while 循环执行一
38、次,临时变量 p 应该指向 字符串的下一位置,所以应改为: while(*p+); 。*请编写函数 fun, 函数的功能是 : 统计各年龄段的人数。 n 个年龄通过 调用随机函数获得 ,并放在主函数的 age 数组中;要求函数把 0 至 9 岁年龄段 的人数放在 d0中 ,把 10 至 19 岁年龄段的人数放在 d1 中 ,把 20 至 29 岁年龄段的 人数放在 d2 中 ,其余依此类推 , 把 100 岁 (含 100)以上年龄的人数都放在 d10 中。 结果在主函数中输出。注意:局部源程序在文件 prog1.c 中。 请勿改动主函数 main 和其它函数中的任何内容 ,仅在函数 fun
39、的花 括号中填入你编写的假设干语句。 给定源程序: #include stdio.h #define n 50 #define m 11 void fun( int *a, int *b) double rnd() static t=29,c=217,m=1024,r=0; r=(r*t+c)%m; return(double)r/m); main() int agen, i, dm; for(i=0; in;i+)agei=(int)(115*rnd(); printf(the original data :n); for(i=0;in;i+)printf(i+1)%10=0?%4dn:%4
40、d,agei); printf(nn); fun( age, d);for(i=0;i10;i+)printf(%4d-%4d : %4dn,i*10,i*10+9,di); printf( over 100 : %4dn,d10); nono(d); 解题思路:此题是统计各年龄段的人数。 1. 初始化各年龄段人数为 0。 2. 使 用 for 循环以及求出各年龄的 十位数字作为存放人数的地址,如果大于值大于 10 ,那么 存入 d10 中大于 110 岁的人。 参考答案:void fun( int *a, int *b) int i, j ;for(i = 0 ; i m ; i+) bi
41、= 0 ; for(i = 0 ; i n ; i+) j = ai / 10 ;if(j 10) bm - 1+ ; else bj+ ; double rnd() static t=29,c=217,m=1024,r=0; r=(r*t+c)%m; return(double)r/m); 第 05 套: 给定程序中 ,函数 fun 的功能是将参数给定的字符串、整数、浮点数 写到文本 文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数 atoi 和 atof 将 字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。 请在 程序的下划线处填入正确的内容并把下划线删除 , 使程序得出正
42、确的 结果。注意:源程序存放在考生文件夹下的 blank1.c 中。 不得增行或删行,也不得更改程序的构造! 给定源程序: #include stdio.h #include stdlib.h void fun(char *s, int a, double f) _1_ fp;char str100, str1100, str2100; int a1; double f1;fp = fopen(, w);fprintf(fp, %s %d %fn, s, a, f); _2_ ;fp = fopen(, r);fscanf(_3_,%s%s%s, str, str1, str2); fclos
43、e(fp); a1 = atoi(str1); f1 = atof(str2); printf(nthe result :nn%s %d %fn, str, a1, f1); main() char a10=hello!; int b=12345; double c= 98.76; fun(a,b,c); 解题思路: 此题是考察先把给定的数据写入到文本文件中,再从该文件读出并 转换成相应的整数、浮点数显示在屏幕上。第一处:定义文本文件类型变量,所以应填:file * 。第二处:关闭刚写入的文件,所以应填: fclose(fp) 。 第三处:从文件中读出数据,所以应填: fp 。*给定程序 mo
44、di1.c 中函数 fun 的功能是 : 对 n 名学生的学习成绩 ,按 从高到低的顺序找出前 m(mc 10)名学生来,并将这些学生数据存放在 一个动态分配的连续存储区中 , 此存储区的首地址作为函数值返回。请改正函数 fun 中指定部位的错误 , 使它能得出正确的结果。 注意: 不要改动 main 函数, 不得增行或删行 , 也不得更改程序的构造 给定源程序: #include stdio.h #include alloc.h #include string.h #define n 10 typedef struct ss char num10; int s; stu;stu *fun(s
45、tu a, int m) stu bn, *t; int i,j,k;t=(stu *)calloc(sizeof(stu),m) for(i=0; in; i+) bi=ai; for(k=0;km; k+) for(i=j=0; in; i+) if(bi.s bj.s) j=i; t(k)=b(j); bj.s=0; return t; outresult(stu a, file *pf) int i;for(i=0; in; i+) fprintf(pf,no = %s mark = %dn, ai.num,ai.s);fprintf(pf,nn); main() stu an= a0
46、1,81,a02,89, a03,66,a04,87,a05,77, a06,90,a07,79,a08,61,a09,80,a10,71 ; stu *porder; int i, m;printf(* the original data *n); outresult(a, stdout);printf(ngive the number of the students who have better score: ); scanf(%d,m); while( m10 ) printf(ngive the number of the students who have better score
47、: ); scanf(%d,m); porder=fun(a,m);printf(* the result *n); printf(the top :n); for(i=0; im; i+) printf( %s %dn,porderi.num , porderi.s); free(porder); 解题思路: 第一处 : 语句最后缺少分号。 第二处 : 应该使用方括号,而不是圆 括号。像此类,使用编译,即可发现。 *请编写函数 fun, 函数的功能是 : 删去一维数组中所有一样的数 , 使之 只剩一个。数组中的数已按由小到大的顺序排列 ,函数返回删除后数 组中数据的个数。例如, 一维数组中的
48、数据是 : 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10 删除后 , 数组中的内容应该是 : 2 3 4 5 6 7 8 9 10 。注意:局部源程序在文件 prog1.c 中。请勿改动主函数 main 和其它函数中的任何内容 , 仅在函数 fun 的花 括号中填入你编写的假设干语句。 给定源程序: #include stdio.h #define n 80int fun(int a, int n) main() int an=2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10,i,n=20;printf(the orig
49、inal data :n); for(i=0; in; i+)printf(%3d,ai); n=fun(a,n);【篇三: 2021 年计算机二级 c 语言测试题及答案解析】1.(a )是构成c语言程序的根本单位。 a、函数b、过程c、子程序 d、子例程2.c语言程序从c开场执行。a、程序中第一条可执行语 句b、程序中第一个函数 c、程序中的ma in函数d、包含文件中的 第一个函数 3、以下说法中正确的选项是 ( c )。a、c 语言程序总是从第一个定义的函数开场执行b、 在c语言程序中,要调用的函数必须在main()函数中定义c、c 语言程序总是从 main( ) 函数开场执行d、c 语
50、言程序中的 main( ) 函数必须放在程序的开场局部4. 以下关于 c 语言的说法错误的选项是 ( b ) 。a、c 程序的工作过程是编辑、编译、连接、运行b 、 c 语言不区分大小写。c、 c 程序的三种根本构造是顺序、选择、循环d 、 c 程序从 main 函数开场执行5. 以下正确的标识符是 (c ) 。a 、 -a1b 、 aic 、 a2_id 、 int t58 题为一样类型题 考点:标识符的命名规那么 只能由字母、数字、下划线构成 数字不能作为标识符的开头 关键字不能作为标识符选项 a 中的“- ,选项 b 中“与“不满足 (1);选项 d 中的 int 为 关键字,不满足 (
51、3)6. 以下 c 语言用户标识符中合法的是 (b ) 。a、3axb 、 xc 、 cased 、 -e2 e)union选项 a 中的标识符以数字开头不满足 (2);选项 c,e 均为为关键字, 不满足(3); 选项 d 中的 “- 不满足 (1);7. 以下四组选项中,正确的 c 语言标识符是 ( c )。a 、 %xb 、 a+bd 、 123选项a中的“ ,选项b中“+不满足(1);选项d中的标识符以数 字开头不满足 (2)8. 以下四组字符串中都可以用作c语言程序中的标识符的是(a)。a 、 print _3d db8 abcb 、 iam one_half start$it 3p
52、aic 、 str_1 cpp pow whiled 、 pxq my-book line# his.age选项b中的“, $ ,选项d中“, #,“ .,“ -不满 足(1);选项c中的while为关键字,不满足(3)9. c 语言中的简单数据类型包括 (d )。a 、整型、实型、逻辑型b 、整型、实型、逻辑型、字符型c 、整型、字符型、逻辑型d 、整型、实型、字符型10. 在c语言程序中,表达式 5%2的结果是c。a、2.5b、2c、1d、3% 为求余运算符,该运算符只能对整型数据进展运算。且符号与被 模数一样。 5%2=1; 5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;/为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进 展运算, 5/2=211. 如果 int a=3,b=4; 那么条件表达式 aa 、 3b、4 c 、 0 d 、 1 详见教材 p97.表达式 1? 表达式 2:表达式 3先计算表达式 1 ,假设表达式 1 成立, 那么选择计算表达式 2 ,并表达式 2 的值作为 整个大表达式的值 ;假设表达式 1 不成立,那么选择计算表达式3,并将表达式 3 的值作为整
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024学校维修合同书
- 2024年度网站域名合作契约
- 新建住宅购买合同样本
- 药品销售代理合同范例
- 高中生宿舍管理规定范本
- 建筑机械租赁合同简易格式
- 2024年资产抵债协议书
- 房屋房基流转协议书-合同范本
- 制造企业员工合同样本
- 产品加工合同典范
- 电力工程施工售后保障方案
- 2024年小学心理咨询室管理制度(五篇)
- 第16讲 国家出路的探索与挽救民族危亡的斗争 课件高三统编版(2019)必修中外历史纲要上一轮复习
- 机器学习 课件 第10、11章 人工神经网络、强化学习
- 北京市人民大学附属中学2025届高二生物第一学期期末学业水平测试试题含解析
- 书籍小兵张嘎课件
- 氢气中卤化物、甲酸的测定 离子色谱法-编制说明
- 2024秋期国家开放大学专科《机械制图》一平台在线形考(形成性任务四)试题及答案
- 2024年黑龙江哈尔滨市通河县所属事业单位招聘74人(第二批)易考易错模拟试题(共500题)试卷后附参考答案
- 私募基金管理人-廉洁从业管理准则
- 房地产估价机构内部管理制度
评论
0/150
提交评论