四川省计算机二级C语言历年考题之程序填空
- 格式:docx
- 大小:52.86 KB
- 文档页数:34
四川省计算机二级 C语言试题(集)四川省普通高等学校计算机应用知识和能力第三^一次等级考试二级(C与C++语言)笔试试卷时间:2009年10月24日上午9:00—11:00第一部分软件技术基础(共15分)一、是非判断题(每小题1分,共10分)(判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B ) 1. 数据在计算机内存中的表示是指数据的存储结构。
(1 )2. 作业与进程的主要区别是前者是由系统自动生成,后者是由用户提交。
(2 )3. 从逻辑上可以把数据结构分为线性结构和非线性结构。
(3 )4. 在设备管理中,通道是处理输入、输出的软件。
(4 )5. 链表可以随机访问任意一个结点,而顺序表则不能。
(5 )6. 栈顶的位置是随着进栈和退栈操作而变化的。
(6 )7. 处于等待状态的进程,若其等待的事件已发生,就立即转入运行状态。
(7 )8. 任何两个并发进程之间一定存在互斥关系。
(8 )9. 在面向过程方法的软件生存期内,能准确确定软件系统必须做什么和必须具备的功能阶段是需求分析。
(9 )1.若进栈序列为1, 2, 3, 4,且进栈过程中可以出栈,贝U 不可能出栈的序列是( 11 (A) 1, 4, 3, 2(B) 2, 3, 4, 1(C) 3, 1, 4, 2(D) 3,11 )。
4, 1,12 (A)系统硬件(B)程序(C)数据结构(D)标准程序库3. 外部设备完成了预定的输入/输出操作所引起的中断是( 13 )。
13 (A)外中断 (B) I/O 中断 (C)程序中断程序库4.以下的准则中哪个不是软件设计应遵循的(14 )。
14 (A)抽象准则 (B)模块化准则(C)信息屏蔽准则(D)标准(D)综合性准则5.在结构化设计方法中,设计功能模块算法属于软件开发中的 (15 )阶段。
15 (A)详细设计 (B)需求分析 (C)总体设计(D)编程调试10. 在软件测试的基本方法中,静态测试不用测试用例。
四川省计算机二级c语言考试试题及答案及解析一、选择题(每题2分,共20分)1. C语言中,用于定义变量的关键字是()。
A. structB. intC. charD. float答案:B解析:在C语言中,定义变量时需要使用关键字,其中用于定义整型变量的关键字是int。
2. 下列哪个选项是合法的C语言标识符?()A. 2variableB. variable2C. _variableD. variable!答案:C解析:C语言中标识符可以由字母、数字、下划线组成,但不能以数字开头。
3. C语言中,用于表示逻辑“与”操作的运算符是()。
A. &&B. ||C. ==D. =答案:A解析:在C语言中,逻辑“与”操作符是&&,用于比较两个表达式是否都为真。
4. 下列哪个选项不是C语言中的控制语句?()A. ifB. switchC. forD. goto答案:D解析:goto语句虽然在C语言中存在,但它不是控制语句,而是一种跳转语句。
5. 在C语言中,用于定义一个结构体的关键字是()。
A. structB. unionC. enumD. typedef答案:A解析:struct关键字用于定义一个结构体类型。
6. 下列哪个选项是C语言中的预处理指令?()A. #includeB. #defineC. #ifD. All of the above答案:D解析:#include、#define和#if都是C语言中的预处理指令。
7. C语言中,用于表示逻辑“或”操作的运算符是()。
A. &&B. ||C. ==D. =答案:B解析:逻辑“或”操作符是||,用于比较两个表达式是否至少有一个为真。
8. C语言中,用于表示逻辑“非”操作的运算符是()。
A. !B. &&C. ||D. =答案:A解析:逻辑“非”操作符是!,用于取反一个表达式的逻辑值。
9. 在C语言中,用于定义一个数组的关键字是()。
3月全国计算机等级考试二级C语言上机题库(20~30套)考试频道小编收集整理计算机等级考试资料,免费提供给大家交流参考。
第二十一套1. 程序填空给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串右边的字符删去,只保留左边的k个字符。
ss所指字符串数组中共有N个字符串,且串小于M。
第一处void fun(char (*ss)[M], int k)第二处while (i第三处ss[i][k]=0;i++;}2. 程序修改给定程序MODI1.C中函数fun的功能是:根据以下公式求值,并作为函数值返回。
例如,给指定精度的变量eps输入0.0005时,应当输出Pi=30140578.。
/**found**/t=1;/**found**/return(2*s);3. 程序设计假定输入字符串中只包含字母和*号。
请编写函数fun,它的功能是:将字符串的前导*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。
函数fun中给出的语句仅供参考。
void fun(char*a,int n){int i=0,k=0;while(a[k]= =*)k++;if(kn){i=n;j=k;for(;a[j]!=0;j++)a[i++]=a[j];a[i]=0;}}第二十二套1. 程序填空给定程序中,函数fun的功能是:a所指43矩阵中第k行的元素与第0行元素交换。
例如:有下列矩阵1 2 34 5 67 8 910 11 12若k为2,程序执行结果为7 8 94 5 61 2 310 11 12第一处void fun(int (*a)[N],int k)第二处for(i=0;i第三处a[0][i]=a[k][i];2. 程序修改给定程序MODI1.C中函数fun的功能是:读入一个字符串(长度20),将该字符串中的所有字符串按ASCII码升序排序后输出。
计算机二级考试c语言考试真题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于声明一个函数?A. intB. voidC. returnD. function答案:A2. 若有定义:int a=5, b=10; 则以下哪个表达式的值不为5?A. a+bB. a-bC. a*bD. a/b答案:C3. 在C语言中,以下哪个选项不是标准输入输出库函数?A. printf()B. scanf()C. puts()D. strcat()答案:D4. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. _variableD. variable-2答案:B5. 若有定义:char c='A'; 则以下哪个表达式的值不为65?A. cB. 'A'C. "A"D. '\101'答案:C6. 在C语言中,以下哪个选项表示逻辑“与”操作?A. &&B. ||C. !D. =答案:A7. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[5] = "ABCDE";B. char str[5] = {'A', 'B', 'C', 'D', 'E'};C. char str[5] = {'A', 'B', 'C', 'D'};D. char str[5] = "ABC" "DE";答案:D8. 若有定义:int x=10; 则以下哪个表达式的值不为10?A. x++B. x--C. ++xD. --x答案:D9. 在C语言中,以下哪个选项是正确的二维数组声明?A. int array[3][2];B. int array[][] = {1, 2, 3};C. int array[3][];D. int array[2, 3];答案:A10. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopen()B. fclose()C. fgetc()D. All of the above答案:D二、程序填空题(每空2分,共20分)给定以下程序片段,请在空白处填入正确的代码。
二级(C与C++语言) 笔试试卷时间: 2011年4月16 日上午9:00—11:00第一部分软件技术基础(共15分)一、是非判断题(每小题1分,共10分)( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )1. 作业与进程的主要区别是前者由用户提交,后者是由系统自动生成。
( A )2. 从循环链表中任意一个结点出发都能访问到整个链表。
( A )3. 如果分时操作系统的时间片一定,那么用户数越少,则响应时间越长。
( A )4. 队列在操作系统的各种资源请求排队及数据缓冲区管理中广泛使用。
( A )5. 死锁产生的根本原因是操作系统能够提供的资源比请求该资源的进程数少。
( B )分析:死锁产生原因:争夺共享资源;进程推进顺序不当6. 虚拟设备技术能将独占设备转换为可共享的设备,提高资源利用率。
( A )7. 链栈与顺序栈相比,有一个明显的优点是通常不会出现栈满的情况。
( A )8. 软件维护是长期的过程,交付使用的软件仍然需要排错、修改和扩充。
( A )9. 墨盒测试要求测试人员根据程序内部逻辑结构设计或选择测试用例。
( B )分析:白盒测试才是根据程序内部逻辑结构设计测试用例,黑盒测试是功能测试10.软件设计时,应力求增加模块的耦合,减少模块间的内聚。
( B )分析:软件设计时,应力求增加模块的内聚,减少模块间的耦合二、选择题(每小题1分,共5分)1. 设已将元素a1、a2、a3依次入栈,元素a4正等待进栈。
那么下列4个序列中不可能出现的出栈序列是( A )。
11 (A) a3、a1、a4、a2 (B) a3、a2、a4、a1(C) a3、a4、a2、a1 (D) a4、a3、a2、a12. 以下哪一个不是操作系统的特征( B )。
12 (A) 并发(B) 分解(C) 共享(D) 虚拟3. 下列的进程状态变化中,( C )变化是不可能发生的。
13 (A) 运行→就绪(B) 运行→等待(C) 等待→运行(D) 等待→就绪4. 很好地解决了碎片问题的存储管理方法是( D )。
四川省普通高等学校计算机应用知识和能力第二十九次等级考试二级(C与C++语言) 笔试试卷时间: 2008年10月18 日( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )1. 在设备管理中通道是处理输入、输出的软件。
( 1 )2. 从逻辑上可以把数据结构分为线性结构和非线性结构。
( 2 )3. 若无进程处于运行状态,则就绪队列为空。
( 3 )4. 在单处理器系统中,程序的并发执行,实质上是程序的交替执行。
( 4 )5. 分页存储管理中,页面不能映射到不连续的内存块中。
( 5 )6. 瀑布模型的突出缺点是不适应用户需求的变化。
( 6 )7. 栈和队列的共同特点是允许在端点之外处插入和删除元素。
( 7 )8. 为了便于对照检查,测试用例应由输入数据和预期的输出结果两部分组成。
( 8 )9. 在软件生存期内,能确定软件系统必须做什么和必须具备的功能阶段是编码。
( 9 )10.在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、判定树。
( 10 )二、选择题(每小题1分,共5分)1. 软件开发中,模块设计的原则是(11 )。
11 (A) 低偶合、高内聚(B) 高偶合、高内聚(C) 高偶合、低内聚(D) 低偶合、低内聚2. 进程从运行状态进入就绪状态的原因可能是(12 )。
12 (A) 时间片用完(B) 等待某一事件(C) 等待的事件已发生(D) 被选中占有处理机3. 队列的操作原则是(13 )。
13 (A) 先进后出(B) 先进先出(C) 只进不出(D) 只出不进4. 以下(14 )不是实时操作系统的特点。
14 (A) 高可靠性(B) 及时响应(C) 高效性(D) 通用性5. 程序流程图是用于描述结构化方法中(15 )工作阶段的工具。
15 (A) 可行性分析(B) 程序编码(C) 详细设计(D) 需求分析1. 下列关于C++语言类的描述中错误的是(16 )。
3月全国计算机等级考试二级C语言上机题库(20~30套)3月全国计算机等级考试二级C语言上机题库(20~30套)考试频道小编收集整理计算机等级考试资料,免费提供给大家交流参考。
第二十一套1. 程序填空给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串右边的字符删去,只保留左边的k个字符。
ss所指字符串数组中共有N个字符串,且串小于M。
第一处void fun(char (*ss)[M], int k)第二处while (i第三处ss[i][k]=0;i++;}2. 程序修改给定程序MODI1.C中函数fun的功能是:根据以下公式求值,并作为函数值返回。
例如,给指定精度的变量eps输入0.0005时,应当输出Pi=30140578.。
/**found**/t=1;/**found**/return(2*s);3. 程序设计假定输入字符串中只包含字母和*号。
请编写函数fun,它的功能是:将字符串的前导*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。
函数fun中给出的语句仅供参考。
void fun(char*a,int n){int i=0,k=0;while(a[k]= =*)k++;if(kn){i=n;j=k;for(;a[j]!=0;j++)a[i++]=a[j];a[i]=0;}}第二十二套1. 程序填空给定程序中,函数fun的功能是:a所指43矩阵中第k行的元素与第0行元素交换。
例如:有下列矩阵1 2 34 5 67 8 910 11 12若k为2,程序执行结果为7 8 94 5 61 2 310 11 12第一处void fun(int (*a)[N],int k)第二处for(i=0;i第三处a[0][i]=a[k][i];2. 程序修改给定程序MODI1.C中函数fun的功能是:读入一个字符串(长度20),将该字符串中的所有字符串按ASCII码升序排序后输出。
C语言四川省计算机二级笔试真题C32总共30 题共100分一.单选题(共15题,共37.5分)1.【题号:5113】以下能正确进行字符串赋值的是()(2.5分)A.char s[5]={'a','e','i','o','u'};B.char s[5]; s="good";C.char s[5];s[5]="abcd";D.char s[5]; s[ ]="good";标准答案:A2.【题号:5114】有下面的说明和语句,则输出的结果是()char a=9,b=020;printf("%o\n",~a&b<<1);(2.5分)A.377B.40C.32D.以上答案均不对标准答案:B3.【题号:5115】若有float x; 则sizeof ( x ) 和sizeof ( float ) 两种描述()(2.5分)A.都正确B.都不正确C.前者正确,后者不正确D.后者正确,前者不正确标准答案:A4.【题号:5116】若有代数式,则不正确的C语言表达式是()(2.5分)A.3*a*e/b*cB.3*a*e/b/cC.a/b/c*e*3D.a*e/c/b*3标准答案:A5.【题号:5117】下列程序运行的结果是 ( )main(){ struct cmplx{ int x;int y;}cnum[2]={1,3,2,7};printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);}(2.5分)A.0B.1C.3D.6标准答案:D6.【题号:5118】若有以下说明和语句,且0=<iA.*(a+i)B.a[p-a]C.p+iD.*(&a[i])标准答案:C7.【题号:5119】#define M 2#define X(m) ((M+2)*m)则执行语句:z=2*(M+X(3+2); 后,z的值为()(2.5分)A.44B.45C.32D.338.【题号:5120】下列函数定义中,会出现编译错误的是( )(2.5分)A.int fun(int x,int y){ int z;z=(x>y)?x:y;return z;}B.int fun(int x,int y,int *z){ z=(x>y)?x:y;return z;}C.int fun(int x,int y){ return ( (x>y) ? x : y ); }D.int fun(int x,int y,int *z){ *z = (x>y) ? x : y ; }标准答案:B9.【题号:5121】下面C++的语句( )能实现printf("%d%d\n",a,b); 的功能(2.5分)A.cin>>a>>bB.cin>>a>>bC.cout<<a<<b< p="">D.cout<<a<<b<<endl< p="">标准答案:D10.【题号:5122】在如下程序段中的while循环 ( )int k=0;while(k=1) k++;(2.5分)A.有语法错,不能执行B.无限循环C.一次都不执行D.执行一次11.【题号:5123】下述程序的输出结果是 ( )# includevoid main(){int y=10;while(y--);printf("y=%d",y);}(2.5分)A.y=0B.y=1C.y=随机值D.y=-1标准答案:D12.【题号:5124】若有以下说明:char *str1="copy",str2[20],*str3="str",*str4,*str5="good";则错误的串操作语句是 ( )(2.5分)A.strcpy(str4,str1);B.strcat(str1,str3);C.str2="new str";D.strcpy(str5,str3);标准答案:C13.【题号:5125】下面程序运行后,x,y,z的值分别为( ) void main() { int x=0,y=0,z=0; ++x||++y||++z; printf("%d%d%d\n",x,y,z); }(2.5分)A.100B.000C.111D.001标准答案:A14.【题号:5126】关于C++和C语言学关系描述中,错误的是 ( )(2.5分)A.C语言与C++是兼容的B.C++对C语言进行了一些改进C.C语言是C++的一个子集D.C++和C语言都是面向对象的标准答案:D15.【题号:5127】#define f(x) 1+x+x*x#includevoid main(){int a=2,b=3;printf("%d\n",f(a+b));}(2.5分)A.17B.31C.13D.7标准答案:A二.读程序回答问题(共10题,共25分)16.【题号:5128】下列程序运行的结果为()。
计算机二级C语言题库之程序填空找Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1#include <stdio.h>#include<math.h>void main(){ int i,a,b,c;for(i=100;i<=999;i++){ a=i/100;_______1_______ // b=i%100/10;c=i%10;if (________2________) // a*a*a+b*b*b+c*c*c = = iprintf("%d is a Armstrong number!\n",i);}}输入1个整数后,输出该数的位数。
(例:输入3214则输出4,输入-23156则输出5)。
#include <stdio.h>void main(){ int n,k=0;scanf("%d",&n);while( _____1_____ ){ // n!=0k++;_____2_____; // n=n/10}printf("%d\n",k);}求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。
#include <stdio.h>#include <math.h>void main(){int n,s=0;scanf("%d",&n);______ 1 ______ // if (n<0) n=-n;while(n!=0) {______ 2 ______ // s+=n%10;n=n/10;}printf("%d\n",s);}调用函数f,将一个整数首尾倒置。
三、程序填空(每空2分,共30分)1.下列程序实现将一个整数字符串转换为一个整数。
# include <string.h># include <stdio.h>int Fun(char *str){ int num,digital,len;①num=0 ;len=strlen(str);while(*str!=NULL){digital=*str-'0';for(int i=0;②i < len-1 ;i++)digital*=10;len--;③str++ ;num+=digital;}return num;}void main(){ char n[80];int number;gets(n);number=Fun(n);printf("%d\n",number);}11~999之间的数m,它满足m,m2,m3均为回文数(所谓回文数是指其各位数字左右对称的整数)。
# include <iostream.h>void main(){ int symm(long n);long m;for(m=11;m<1000;m++)if(①symm(m)&&symm(m*m)&&symm(m*m*m))cout<<"m="<<m<<"m*m="<<m*m<<"m*m*m="<<m*m*m<<endl;}int symm(long n){ long i,m;i=n; m=0;while(②i!=0 ){ ③m=m*10+i%10 ;i=i/10;}return (m==n);}3.已知head指向一个单向链表,如下图:主程序中调用add函数能求出链表中所有结点数据域的和sum并返回。
四川省计算机等级考试二级语言笔试题(第二十一次)一四川省普通高等学校计算机应用知识和能力第二十一次等级考试二级(与语言)笔试试卷时间年月日上午—第一部分软件技术基础(共分)一、是非判断题(每小题分,共分).应用程序在执行过程中,需要通过打印输出数据时,一般先形成一个打印作业,将其存放在硬盘中的一个指定队列中。
当打印空闲时,就会按先来后服务的方式从中取出待打印的作业进行打印。
().若无进程牌运行状态,则就绪队列和等待队列均为空。
().多道程序设计是指在一台处理上迸发运行多个程序逻辑。
().黑盒法是软件测试方法中的静态测试方法之一。
().软件的详细设计就是要编写出具体的程序。
().软件生命周期中花费最多的阶段是软件维护。
().是单用户多任务操作系统,是多用户多任务操作系统。
().进程把程序作为它的运行实体,没有程序也就没有进程。
().在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表和判定树。
().作业调度程序从后备队列中选一个作业装入主存后,决定能否占用处理机的是设备调度程序。
()二、单项选择题(分小题,共分).交换技术是在()之间交换程序和数据。
()主内存与()与外设()主内存与外存()外存与.以下的工具中哪个不是软件详细设计中使用的工具()。
()数据流图()图()图()语言.任何两个并发进程之间()。
()一定存在互斥关系()一定存在同步关系()一定彼此独立无关()可能存在同步或互斥关系.进程从运行状态进入就绪状态的原因可能是()。
()被选中占有处理机()等待某一事件()等待的事件已发生()时间片用完.算法指的是()。
()计算机程序()解决问题的有限运算序列()排序算法()解决问题的计算方法第二部分与语言程序设计(共分)一、单项选择题(每小题分,共分).以下程序运行后,输出结果是()。
(){ ;(>)(<);(“\”);}(),(),(),(),.以下程序输出的结果是()。
四川省普通高等学校计算机应用知识和能力第十九次等级考试二级(C与C++语言) 笔试试卷时间: 2003年10月18日( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )1. 在目前,用于保证软件质量的主要手段是进行软件测试。
( 1 )2. 使用DMA方式传送数据期间不需要CPU干预。
( 2 )3. 线性顺序队列会产生“假溢出”,而线性循环队列则不会。
( 3 )4. 对同一种算法,用高级语言编写的程序比用低级语言编写的程序运行速度快。
( 4 )5. 在线性表中,数据的存储方式有顺序和链接两种。
( 5 )6. 进程是由程序块、文件控制块和数据块三部分组成。
( 6 )7. 在面向对象的程序设计中,派生类只能从一个基类产生。
( 7 )8. 操作系统是用户和硬件的接口。
( 8 )9. 个人计算机中可配置的最大内存容量受地址总线位数的限制。
( 9 )10.软件维护中最困难的问题是软件配置不全。
( 10 )二、选择题(每小题1分,共5分)1. 在排序法中,从未排序序列中依次取出元素,与已排序序列中的元素作比较,将其放入已排序序列的正确位置称为( 11 )。
11 (A) 选择排序(B) 快速排序(C) 插入排序(D) 冒泡排序2. 有X、Y、Z三个元素依次入栈,不可能的出栈顺序是( 12 )。
12 (A) Z,Y,X (B) Z,X,Y(C) Y,X,Z (D) X,Y,Z3. 进程的状态是可以转换的,而以下哪个状态转换是不可能的( 13 )。
13 (A) 就绪状态→执行状态(B) 执行状态→就绪状态(C) 阻塞状态→就绪状态(D) 等待状态→执行状态4. 线性链表的地址( 14 )。
14 (A) 必须连续(B) 部分地址必须连续(C) 一定不连续(D) 连续与否均可以5. 在软件测试中,( 15 )主要分析程序的内部结构。
15 (A) 白盒法(B) 黑盒法(C) 因果图法(D) 错误推测法第 2 页共136 页1. 对下列程序段的描述正确的是(16 )。
四川省计算机等级考试二级C语言笔试题(第二十一次)一2009-03-29 15:15:17四川省普通高等学校计算机应用知识和能力第二十一次等级考试二级(C与C++语言)笔试试卷时间:2004年10月16日上午9:00—11:00第一部分软件技术基础(共15分)一、是非判断题(每小题1分,共10分)1.应用程序在执行过程中,需要通过打印输出数据时,一般先形成一个打印作业,将其存放在硬盘中的一个指定队列中。
当打印空闲时,就会按先来后服务的方式从中取出待打印的作业进行打印。
( 1 )2.若无进程牌运行状态,则就绪队列和等待队列均为空。
( 2 )3.多道程序设计是指在一台处理上迸发运行多个程序逻辑。
( 3 )4.黑盒法是软件测试方法中的静态测试方法之一。
( 4 )5.软件的详细设计就是要编写出具体的程序。
( 5 )6.软件生命周期中花费最多的阶段是软件维护。
( 6 )7.Windows 是单用户多任务操作系统,UNIX是多用户多任务操作系统。
(7 )8.进程把程序作为它的运行实体,没有程序也就没有进程。
(8 )9.在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表和判定树。
(9 )10.作业调度程序从后备队列中选一个作业装入主存后,决定能否占用处理机的是设备调度程序。
(10 )二、单项选择题(1分/小题,共5分)1.交换技术是在(11 )之间交换程序和数据。
11(A)主内存与CPU (B)CPU与外设(C)主内存与外存(D)外存与CPU2.以下的工具中哪个不是软件详细设计中使用的工具(12 )。
12(A)数据流图(B)N-S图(C)PDA图(D)PDL语言3.任何两个并发进程之间(13 )。
13(A)一定存在互斥关系(B)一定存在同步关系(C)一定彼此独立无关(D)可能存在同步或互斥关系4.进程从运行状态进入就绪状态的原因可能是(14 )。
14(A)被选中占有处理机(B)等待某一事件(C)等待的事件已发生(D)时间片用完5.算法指的是(15 )。
程序填空题一1. 下面C语言程序将两个递增有序的数值a和b 合并一个数组c,并保持递增次序,最后输出数组c.#include < stodio.h>#define M6#define N5main( ){int a[M]={1,3,5,7,9,11} b[N]={2,4,6,8,10}int c[M+N]int i ,j, k;i=j=k=0while( 1 )if a[i]<b[j]c[k++]=a[i++];else c[k++]=b[j++];while( 2 )c[k++]=a[i++];while(j<N)c[k++]=( 3 )for(k=0;k<( 4 );k[++])printf(%dxt,c[k]; )其中(1)(2)(3)(4)处分别填一数据,使程序达到其功能。
答案:1:i<M&&j<N2:i<M;3:b[j++];4:M+N2.下面h函数的功能是计算如下数学函数H的值。
请填空。
double fgh(double(*f)(double a),double (* g)(double b),double x,double y){return(【1】);}double h(double a,double b)return(fgh(sin,cos,a,b)* fgh(【2】));}解:(1)(*f)(x+y)/(*g)(y-x)(2)cos,sin,a,b[解析]本题考察的是函数的声明。
要填写的两个空都出现在return语句中,所以要仔细分析函数的返回值。
本题的第二个空相对要容易一些,只要根据题干和乘号前面的调用语句对比一下即可得到调用语句的四个参数。
第一个空相对要难一些,函数fgh定义时用到了函数指针(*f)和(*g)是为了增加函数的灵活性。
根据函数h的定义以及题干要求,可以看出函数fgh应该表示的是乘号两边的某一项。
计算机二级《C语言》考试题库与答案一、程序填空题(共18分)、下列给定程序中,函数flm的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。
例如,s所指的字符串为“def35adh3kjsdt7”,执行后结果为“defadhajsdt3537”。
请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANKl.c中。
不得增行或删行,也不得更改程序的结构!二、程序修改题(共l8分)下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!三、程序设计题(共24分)编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。
例如,若输入字符串123412132,输入字符为l,则输出3。
注意:部分源程序在文件PROCl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填人你编写的若干语句。
参考答案一、程序填空题【参考答案】(1)j++或j+=1或++j或j=j+1(2)s[i]=t1[i](3)j【考点分析】本题考查:指针型变量;数组变量赋值;for循环语句。
【解题思路】填空1:根据函致fun中的内容可知,数组t1存储了s中的非数字字符,数组口存储了s中的数字字符,为了存储下一个数字字符,下标j要进行加1操作。
填空2:将S串中的数字与非数字字符分开后,要先将非数字字符放入字符串s中,因此填入s[i]=t1[i]。
填空3:最后将敦字字符加到s串之后,并且i要小于数字的.个数j。
二、程序修改题【参考答案】(1)fh(j=i+1;j<6;j++)(2)*(pstr+i)=}(pstr+j);【考点分析】本题考查:冒泡排序算法;for循环语句格式;指针数组。
四川省计算机等级考试二级C语言笔试题(第二十六次)一四川省计算机等级考试二级C语言笔试题(第二十六次)一2009-03-29 16:12:58四川省普通高等学校计算机应用知识和能力第二十六次等级考试二级(C与C++语言) 笔试试卷时间: 2007年4月14 日上午9:00—11:00第一部分软件技术基础(共15分)一、是非判断题(每小题1分,共10分)( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )1. Windows是多用户多任务操作系统。
( B )2. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。
( A )3. 在面向对象的软件开发方法中,类可以创建对象,类是对象的实例,对象是生成类的模板。
( B )4. 在计算机系统中,操作系统是处于裸机之上的第一层软件。
( A )5. 数据的存储结构与数据的处理效率无关。
( B )6. 提供没有错误的程序是提高软件的可维护性的基本措施。
( B )7. 中断控制方式适用于外设同CPU之间进行大量数据交换。
( B )8. 在软件工程中,结构化软件开发方法是一种自顶向下分阶段实现的软件开发方法。
( A )9. 进程把程序作为它的运行实体,没有程序也就没有进程。
( A )10.软件工程的目的是最终解决软件的生产工程化。
( B )二、选择题(每小题1分,共5分)1. 以下哪种测试方法不属于白盒测试技术( B )。
11 (A) 基本路径测试(B) 边界值分析测试(C) 循环覆盖测试(D) 逻辑覆盖测试2. 若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是( C )。
12 (A) 1,4,3,2 (B) 2,3,4,1(C) 3,1,4,2 (D) 3,4,2,13. 在多道程序设计系统中,处于后备状态的作业要经过( C )调度后才能真正执行。
13 (A) 作业调度(B) 作业调度和设备调度(C) 进程调度(D) 作业调度和进程调度4. 检查软件产品是否符合需求定义的过程称为( C )。
三、程序填空(每空2分,共30分)1.下列程序实现将一个整数字符串转换为一个整数。
# include <string.h># include <stdio.h>int Fun(char *str){ int num,digital,len;①num=0 ;len=strlen(str);while(*str!=NULL){digital=*str-'0';for(int i=0;②i < len-1 ;i++)digital*=10;len--;③str++ ;num+=digital;}return num;}void main(){ char n[80];int number;gets(n);number=Fun(n);printf("%d\n",number);}11~999之间的数m,它满足m,m2,m3均为回文数(所谓回文数是指其各位数字左右对称的整数)。
# include <iostream.h>void main(){ int symm(long n);long m;for(m=11;m<1000;m++)if(①symm(m)&&symm(m*m)&&symm(m*m*m))cout<<"m="<<m<<"m*m="<<m*m<<"m*m*m="<<m*m*m<<endl;}int symm(long n){ long i,m;i=n; m=0;while(②i!=0 ){ ③m=m*10+i%10 ;i=i/10;}return (m==n);}3.已知head指向一个单向链表,如下图:主程序中调用add函数能求出链表中所有结点数据域的和sum并返回。
struct link{ int data;struct link *next;}int add(struct link *heak){ struct link *p;int s=0;p=①head ;while(p){ s+=②p->data ;p=③p->next ;}return (s);}void main(){ struct link *head;……/* 表示省掉的程序段,创建链表*/sum=add(head);printf("%d\n",sum);}4.下面程序功能是统计文本data.txt中各种大写字母的个数,将统计结果存放在数组count 中,(字母'A'的个数存入count[0]中,字母'B'的个数存入count[1]……依此类推),输出统计结果,一行输出5个。
请填空。
# include <stdio.h># include <stdlib.h>void main(){ FILE *fp;static int count[26]={0};int i;char ch;if(①(fp=fopen("data.txt", "r"))==NULL ){ printf("Cannot open the file!\n");exit(0);}while(! feof(fp)){ ②ch=fgetc(fp) ;if(ch>='A'&&ch<='Z') count[③ch-'A' ]++;}for(i=0;i<26;i++){if(i%5==0) printf("\n");printf("count[%d]=%-5d",count[i]);}fclose(fp);}5.下面程序的功能是输入两个字符串a和b和一个标志flag,当flag=0时,将b连在a 后;当flag=1时,将a连在b后;否则返回空指针。
请填空。
# include <stdio.h># include <string.h>char *stradd(char *s,char *t,int f){ char *p;if(f==0){ p=s;s+=strlen(s);①while(*s++=*t++ ) ;}else if(f==1){ p=t;while(*t++);t--;while(*s)*t++=*s++;②*t='\0' ;}③else p=NULL ;return p;}void main(){ char a[100],b[100],*str;int n;printf("Input string a and b:\n");gets(a);gets(b);printf("Input flag:");scanf("%d",flag);str=stradd(a,b,n);printf("Output: %s\n",str);}三、程序填空( 每空2分,共30分)下面程序是一个求数组元素之和的程序。
主程序中定义并初始化了一个数组,然后计算该数组各元素之和,并输出结果。
函数Sum计算数组元素之和。
请完成下列程序。
# include <iostream.h>int TotalSum(int [],int );void main(){ int a[5]={2,3,6,8,10};int Total;Total=①TotalSum(a,5) ;count<<"Aumof array: "②Total <<endl;}int TotalSum(int array[],int len){ int sum=0;for(int i=0;i<len;i++)③sum+=array[i] ;return sum;}输入一个8位二进制数,将其转换为十进制数输出。
# include "iostream.h"double power(double x,int n);void main(void){ int i;int value=0;char ch;cout<<"Enter an 8 bit binary number ";for(i=7;i>=0;i--){ cin>>ch;if(①ch=='1' )value+=②power(2,i) ;}cout<<"decimal value is "<<value<<endl;}double power(double x,int n){ double val=1.0;while(n--)③val=val*x ;return(val);}3. 以下程序是判断输入的字符串是否是“回文”(顺读和倒读都一样的字符串叫回文,如level),请填空。
# include "stdio.h"# include "string.h"void main(){char s[81],*p1,*p2;int n;gets(s);n=strlen(s);p1=s;p2=①s+n-1 ;while(②*p1!= '\0' ){ if(*p1!=*p2) break;else { p1++; ③p2-- ; }}if(p1<p2) printf("No\n");else printf("Yes\n");}4. 下面程序功能是检查一个4阶矩阵是否对称(即对所有的i,j,都有num[i][j]=num[j][i]),请填空。
# include <stdio.h>void main(){int num[4][4];int i,j,flag=0;printf("Input array num:\n");for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",①&num[i][j] );for(i=0;i<4;i++)for(j=0;j<4;j++)if(②num[i][j]!=num[j][i] ){ flag=1; break; }if(③flag==1 ) printf("No\n");else printf("Yes\n");}5. 下面程序的功能是从键盘输入一字符串,将该字符串与一文本文件进行比较,打印出也之相同的行的行号和内容。
void comp( )用于文件的比较,文件名用命令行参数提供。
请填空。
# include "stdio.h"# include "string.h"# include "stdlib.h"FILE *fp;void comp(char *string){ int line=0;char str[100];①while(!feof(fp) ){ fgets(str,100,fp);str[strlen(str)-1]='\0';line++;②if(strcmp(str,string)==0)printf("%d:%s\n",line,str);}}void main(int argc,char **argv){char string[100];if(argc!=2){ printf("Error \n");exit(0);}if(fp=③fopen(argv[1],"r") )==NULL){ printf("Can't open file %s!\n",argv[1]);exit(0);}printf("Please input the string:\n");gets(string);comp(string);fclose(fp);}1.以下程序能创建一张包含有4名学生信息的单向链表并输出。
# include <stdio.h># include <malloc.h># define LEN sizeof(struct student)struct student{ int data;①struct student *next ;};int num=1;struct student *creat(){ struct student *head,*p1,*p2;head=p1=p2=(struct student *)malloc(LEN);scanf("%d",&p1->data);while(num<4){ p1=(struct student *)malloc(LEN);scanf("%d",&p1->data);②p2->next=p1 ;p2=p1;num++;}p2->next=NULL;return(head);}main(){ struct student *head,*p;head=creat();p=head;if(head!=NULL)do{ printf("%d ", p->data);③p=p->next;}while(p!=NULL);}2.下面程序功能是在一个字符串中找出最大的字符并放在第一个位置上,并将该字符前的原字符往后顺序移动,如:cbyab 变成ycbab。