二级C语言考试模拟试题
c语言二级考试试题及答案
c语言二级考试试题及答案C语言二级考试试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言中数组的描述,正确的是:A. 数组名是一个变量名B. 数组名是一个常量C. 数组名是一个指针D. 数组名是一个函数答案:B2. 以下哪个是C语言中的合法变量名?A. 2variableB. variable-nameC. variable_nameD. variable name答案:C3. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello World" + "Hello World"D. "Hello\nWorld"答案:D4. C语言中,以下哪个不是标准输入输出库函数?A. printf()B. scanf()C. getchar()D. puts()答案:C5. 下列哪个是C语言中的条件语句?A. ifB. switchC. forD. while答案:A6. C语言中,以下哪个是正确的函数定义?A. int function_name(int x, int y) { /* ... */ }B. int function_name(int x, int y);C. int function_name(int x, y) { /* ... */ }D. int function_name(int x; int y) { /* ... */ }答案:A7. 在C语言中,以下哪个是正确的递归函数调用?A. function_name(x)B. function_name(x, y)C. function_name(function_name(x))D. function_name(&x)答案:C8. 在C语言中,以下哪个是正确的结构体定义?A. struct person { int age; char name[50]; };B. struct person { int age; char name[50] }C. struct person { int age; char name[50]; }D. struct person { int age; char name[50] } person;答案:A9. 在C语言中,以下哪个是正确的指针声明?A. int *ptr;B. int ptr*;C. *int ptr;D. int * ptr;答案:A10. 下列哪个是C语言中的位运算符?A. &&B. ||C. &D. ++答案:C二、填空题(每题2分,共10分)1. C语言中,使用________运算符可以实现两个整数的按位与操作。
国家二级(C语言)机试模拟试卷100(题后含答案及解析)
国家二级(C语言)机试模拟试卷100(题后含答案及解析)题型有:1. 选择题 2. 程序填空题 3. 程序修改题 4. 程序设计题选择题1.下列关于栈叙述正确的是( )。
A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先被删除正确答案:A解析:栈是先进后出的数据结构,所以栈顶元素最后入栈却最先被删除。
栈底元素最先人栈却最后被删除。
所以选择A。
2.下列叙述中正确的是( )。
A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.以上说法都不正确正确答案:C解析:栈是先进后出的数据结构,在整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来操作,所以选择C3.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( )。
A.3B.4C.6D.7正确答案:D解析:根据二叉树的基本性质3:在任意一棵二义树中,多为0的叶子结点总比度为2的结点多一个,所以本题中度为2的结点为1-1=0个,所以可以知道本题目中的二义树的每一个结点都有一个分支,所以共7个结点共7层,即度为7。
4.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是( )。
A.学生成绩管理系统B.C语言编译程序C.UNIX操作系统D.数据库管理系统正确答案:A解析:软件按功能町以分为:应用软件、系统软件、支撑软件。
操作系统、编译程序、汇编程序、网络软件、数据库管理系统部属于系统软件。
所以B、C、D都是系统软件,只有A是应用软件。
5.结构化程序所要求的基本结构不包括( )。
A.顺序结构B.GOTO跳转C.选择(分支)结构D.重复(循环)结构正确答案:B解析:1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。
计算机二级《C语言》模拟试题及答案
计算机二级《C语言》模拟试题及答案计算机二级《C语言》模拟试题及答案1、以下语句的输出结果是( )。
int a=-1,b=4,k;k=(+ +a<0)&&!(b - -<=0);printf("%d,%d,%d\n",k,a,b);A. 1,0,4B. 1,0,3C. 0,0,3D. 0,0,42、下列程序的输出结果是( )。
char *p1="abcd", *p2="ABCD", str[50]="xyz";strcpy(str+2,strcat(p1+2,p2+1));printf("%s",str);A. xyabcABB. abcABzC. ABabczD. xycdBCD3、执行下面的程序后,a的值是( )。
#define SQR(X) X*Xmain( ){ int a=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a); }A. 10B. 1C. 9D. 04、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( )。
A.P+i*2B. P+(i-1)*2来源:考试大C. P+(i-1)D. P+i5、下列程序执行后输出的结果是( )。
int d=1;fun (int p){ int d=5;d + =p + +;printf("%d,",d); }main( ){ int a=3;fun(a);d + = a + +;printf("%d\n",d); }A. 8, 4B. 9, 6C. 9, 4D. 8, 56、表达式:10!=9的值是( )。
A. trueB. 非零值C. 0D. 17、若有说明: int i,j=7, *p=&i;, 则与i=j; 等价的语句是( )。
二级计算机C语言
全国计算机等级考试二级C语言笔试模拟试题(1)第1题若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是A.a,point,*&a B.&*a,&a,*point C.*&point,*point,&a D.&a,&*point,point 第2题现有如下程序段#include"stdio.h"main(){int k[30]={12,324,45,6,768,98,21,34,453,456};int count=0,i=0;while(k[i]){if(k[i]%2==0‖k[i]%5==0)count++;i++;}printf("%d,%d\n",count,i);}则程序段的输出结果为A.7,8B.8,8C.7,10D.8,10第3题树是结点的集合,它的根结点数目是A.有且只有1B.1或多于1C.0或1D.至少2第4题数据库、数据库系统和数据库管理系统之间的关系是A.数据库包括数据库系统和数据库管理系统B.数据库系统包括数据库和数据库管理系统C.数据库管理系统包括数据库和数据库系统D.3者没有明显的包含关系第5题当k的值不为0时,在下列选项中能够将k的值赋给变量m,n的是A.m=k=n B.(m=k)&&(n=k)C.(m=k)||(n=k)D.(k=m)&&(n=k)第6题设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是A.x&&y B.x<=y C.x||++y&&y-z D.!(x第7题以下不正确的定义语句是A.double x[5]={2.0,4.0,6.0,8.0,10.0};B.int y[5.3]={0,1,3,5,7,9};C.char c1[]={′1′,′2′,′3′,′4′,′5′};D.char c2[]={′\x10′,′\xa′,′\x8′};第8题阅读下面程序段,则执行后的结果为#include"stdio.h"main(){int m=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(int m,int n){return (m*m*m-n*n*n);}A.64B.8C.56D.0第9题软件工程的理论和技术性研究的内容主要包括软件开发技术和A.消除软件危机B.软件工程管理C.程序设计自动化D.实现软件可重用第10题以下叙述中不正确的是A.在不同的函数中可以使用相同的名字的变量B.函数中的形式参数是局部变量C.在一个函数内定义的变量只在本函数范围内有效D.在一个函数内的复合语句中定义的变量在本函数范围内有效第11题函数fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始点是A.文件开始B.文件末尾C.文件当前位置D.以上都不对第12题C语言结构体类型变量在程序执行期间A.所有成员一直驻留在内存中B.只有一个成员驻留在内存中C.部分成员驻留在内存中D.没有成员驻留在内存中第13题以下对结构体类型变量的定义中,不正确的是A.typedef struct aa{int n;float m;}AA;AA tdl;B.#define AA struct aa AA{int n;float m;}tdl;C.struct{int n;float m;}aa;struct aatdl;D.struct{int n;float m;}tdl;第14题有如下程序main(){char ch[2][5]={"6937","8254"},*p[2];int i,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>′\0′;j+=2)s=10*s+p[i][j]-′0′;printf("%d\n",s);}该程序的输出结果是A.69825B.63825C.6385D.693825第15题以下程序的输出结果是main(){int a=21,b=11;printf ("%d\n",--a+b,--b+a);}A.30B.31C.32D.331-5:D,D,A,B,B6-10:D,B,C,B,D11-15:B,AC,C,A第16题下列程序的输出结果是main(){double d=3.2;int x,y;x=1.2;y=(x+3.8)/5.0;printf("%d\n",d*y);}A.3B.3.2C.0D.3.07第17题若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)第18题数据库设计包括两个方面的设计内容,它们是A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计第19题表达式0x13^0x17的值是A.0x04B.0x13C.0xE8D.0x17第20题检查软件产品是否符合需求定义的过程称为A.确认测试B.集成测试C.验证测试D.验收测试16-20:CBAAA第21题下列关于字符串的说法中错误的是A.在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符′\0′作为字符串结束标志B.′\0′作为标志占用存储空间,计入串的实际长度C.在表示字符串常量的时候不需要人为在其末尾加入′\0′D.在C语言中,字符串常量隐含处理成以′\0′结尾第22题以下不能对二维数组a进行正确初始化的语句是A.int a[2][3]={0};B.int a[][3]={{1,2},{0}};C.int a[2][3]={{1,2},{3,4},{5,6}}; D.int a[][3]={1,2,3,4,5,6};第23题阅读下列程序,程序的输出结果是#include"stdio.h"main(){int m,n; float k;for(m=6;m>2;m--){k=0;for(n=m;n>1;n--)k=k+m*n;}printf("%f \n",k);}A.5.000000B.15.000000C.25.000000D.35.000000第24题下面程序段的运行结果是char a[]="lanuage",*p;p=a;while(*p!=′u′){printf("%c",*p-32);p++;}A.LANGUAGE B.language C.LAN D.langUAGE第25题阅读下面程序,则执行后的结果为#include"stdio.h"main(){char *str="abcdefghijklmnopq";while(*str++!=′e′);printf("%c\n",*str);} A.f B.a C.e D.q21-25:B,CBCA第26题设有数组定义:char array[]="China";则数组array所占的空间为A.4个字节B.5个字节C.6个字节D.7个字节第27题若变量c为char类型,能正确判断出c为小写字母的表达式是A.′a′<=c<=′z′B.(c>=′a′)||(c<=′z′)C.(′a′<=c)and(′z′>=c)D.(c>=′a′)&&(c<=′z′)第28题假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为A.log2n B.n2C.O(n1.5)D.n(n-1)/2第29题下列合法的整型常量的表示是A.098B.oXde C.32767D.0xDG第30题下列函数的运行结果是main(){int i=2,p;int j,k;j=i;k=++i;p=f(j,k); printf("%d",p);}int f(int a,int b){int c;if(a>b)c=1;else if(a==b)c=0;else c=-1;return(c);}A.-1B.1C.2D.编译出错,无法运行26-30:CDDCA第31题已知int a=6;则执行a+=a-=a*a;语句后,a的值为A.36B.0C.-24D.-60第32题一些重要的程序语言(如C语言和Pascal语言)允许过程的递归调用。
国家二级C语言机试(操作题)模拟试卷365(题后含答案及解析)
国家二级C语言机试(操作题)模拟试卷365(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.给定程序中,函数fun的功能是:有N×N矩阵,将矩阵的外围元素顺时针旋转。
操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。
例如,若N=3,有下列矩阵: 1 2 3 计算结果为7 4 1 4 5 6 8 5 2 7 8 9 9 6 3 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #define N 43 void fun(int(*t)[N])4 { int j,r[N];5 for(j=0;j<N;j++)r[j]=t[0][j];6 for(j=0;j<N;j++)7 /**********found**********/8 t[0][N-j-1]=t[j][__1__];9 for(j=0;j<N;j++)10 t[j][0]=t[N-1][j];11 /**********found**********/12 for(j=N-1;j>=0;__2__)13 t[N-1][N-1-j]=t[j][N-1];14 for(j=N-1;j>=0;j--)15 /**********found**********/16 t[j][N-1]=r[__3__];17 }18 main( )19 {int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;20 printf(‘‘\nThe original array:\n’’);21 for(2=0;i<N;i++)22 {for(j=0;j<N;j++)printf(‘‘%2d”,t[i][j]);23 printf(‘‘\n’’);24 }25 fun(t);26 printf(‘‘\nThe result is:\n’’);27 for(i=0;i<N;i++)28 { for(j=0;j<N;j++)printf(‘‘%2d’’,t[i][j]);29 printf(‘‘\n’’);30 }31 }正确答案:(1)0 (2)j-- (3)j解析:第一空:由审题分析可知,此处是使第一列成为第一行,即把第一列元素移动到第一行,第一列元素是“t[j][0]”,第一行元素是“t[0][N-j-1]”,故第一空处应为“0”。
计算机二级《C语言》模拟试题及答案
计算机二级《C语言》模拟试题及答案计算机C语言是学计算机设计的根底语言,同学们学得怎么样了呢?为同学分享最新的C语言考试题库,希望能帮助到大家学习!1.算法的空间复杂度是指( )。
A.算法程序的长度B.算法程序中=的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间2.以下表达中正确的选项是( )。
A.一个逻辑数据构造只能有一种存储构造B.逻辑构造属于线性构造,存储构造属于非线性构造C.一个逻辑数据构造可以有多种存储构造,且各种存储构造不影响数据处理的效率D.一个逻辑数据构造可以有多种存储构造,且各种存储构造影响数据处理的效率3.简单的交换排序方法是( )。
A.快速排序B.选择排序C.堆排序D.冒泡排序4.关于构造化程序设计原那么和方法的描述错误的选项是( )。
A.选用的构造只准许有一个入口和一个出口B.复杂构造应该用嵌套的根本控制构造进展组合嵌套来实现C.不允许使用GOT0语句D.语言中假设没有控制构造,应该采用前后一致的方法来模拟5.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和( )。
A.可重用性差B.平安性差C.非持久性D.冗余性6.面向对象的设计方法与传统的面向过程的方法有本质不同,它的根本原理是( )。
A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题D.不强调模拟现实世界中的算法而强调概念7.软件设计包括软件的构造、数据接口和过程设计,其中软件的过程设计是指( )。
A.模块间的关系B.系统构造部件转换成软件的过程描述C.软件层次构造D.软件开发过程8.两个或两个以上模块之间关联的严密程度称为( )。
A.耦合度B.内聚度C.复杂度D.数据传输特性9.以下描述错误的选项是( )。
A.继承分为多重继承和单继承B.对象之间的通信靠传递消息来实现C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征D.类是具有共同属性、共同方法的对象的集合10.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。
计算机等级考试二级C语言模拟试题十套答案
10、3行11、max=(a>b)?a:b; 12、1.00000013、(k=p; 14、6015、int * 16、*z17、1000 10 18、1219、!= 20、return j 计算机等级考试二级C语言模拟试题(6)答案 选 择 题 1-10 D D D A C D D D A C 11-20 D D D C A B D A D D 21-30 B B D C D B A C B C 31-40 C A C D A B C D D A 填 空 题 1-5 时间复杂度和空间复杂度 sqrt(x^2+y^2)/(a+b) 软件工程学 数据模型 关 系 6-10 5 6 0 双精度||double w[i=1] 11-15 -1 852 求书数组元素平均值 9,9,11 max==a[i].s 15 计算机等级考试二级C语言模拟试题(7)答案 选 择 题 1-10 A C B A A D D C C C 11-20 C A B D C C A C A C 21-30 B D C C C B C D D A 31- 40 A D A D D D C A A B 填 空 题 1-5 0 O(nlog2n) 46 软件工具 谓词演算 6-10 8 10 12 31 f 585858 11-15 -850 2 0 row a[row][colum] *s-*t 计算机等级考试二级C语言模拟试题(8)答案 选 择 题 1-10 B B C C C A A A A C 11-20 D C B A B D C A A D 21-30 A D A B B B A A A A 31-35 A C D D D C A C B A 填 空 题 1、边值分析法 2、调试 3、完善性软件维护活动包括以下几类:改正性维护、适应性维护、完善性维护 和预防性维护。改正性维护是指在软件交付使用后,为了识别和纠正软件错误、改正 软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程;适应 性维护是指为了使软件适应变化,而去修改软件 4、消息 5、升序排列和降序排列 6-10 k=5 double abc 3 2 2 3 '\0' ++ 11-13 7 #include #include !feof(fp) 计算机等级考试二级C语言模拟试题(9)答案 一、选择题: 1-10:DABAACCCDD 11-20:BDCBCCADBC 21-30:BCADDDACCD 31-40:CBDCACABBB 40-50:BCCADCCBDD 二、填空题: 1、链式存储和顺序存储2、自顶而下 3、模块4、逻辑独立性
C语言试题,二级C语言试题
二级C语言程序设计模拟试题(一)一、单项选择题。
(每小题1分,共20分)1、一个C语言程序是由(B)组成。
A) 一个函数 B) 一个或若干个函数C) 一个过程 D) 一个过程或若干个过程知识点:C语言程序的结构2、C语言用(D)表示逻辑真值。
A) true B) T C) 整型值0 D) 非0整型值知识点:数据类型3、如果程序中有#include "文件名" 则意味着(A)。
A) 将"文件名"所指的那个文件的全部内容,在此命令行出现的这一点上,插入源程序B) 指定标准输入输出C) 宏定义一个函数D)条件编译说明知识点:编译预处理4、为一个结构体变量分配存储空间时,其所占容量为(B)。
A) 结构体中第一个成员所占容量 B) 结构体中所有成员所占容量C) 结构体中所有成员中所占容量最大者 D) 结构体中最后一个成员所占容量知识点:结构体5、如果int *px,*py;则可用{temp=*px;*px=*py;*py=temp}实现*px和*py的交换。
其中temp应该说明为( A )。
A) int temp B) int &temp C) int **temp D) int *temp知识点:指针6、于合法的c语言长整型常量是(A)。
A) 12L B) 6887273 C) 5E12 D) (long)6887273知识点:数据类型7、下列程序输出正确的是(A)。
main(){ int a=-1,b=1,c;c=(a++<=0)&&!((b--<=0));printf(“%d,%d,%d”,a,b,c);}A) 0,0,1 B) -1,1,1 C) 0,0,0 D) 0,1,0知识点:逻辑运算符8、已知E的ASCII码是69,则执行printf(“%c”,’D’-‘8’+’5’);的结果是(B)。
A) 66 B) A C) B D) E知识点:数据类型与自动转换9、段名访问的方式是(A)A) 结构名.位段名 B) 位段名 C) 结构名 D) *&位段名知识点:位段10、有字符数组a,则正确的输入语句是(C)。
c语言二级考试试题
c语言二级考试试题第一部分:选择题(共50题,每题2分,共100分)1. 下列哪个选项不是C语言中的数据类型?A. intB. floatC. boolD. char2. 当要输入一个整数时,应该使用哪个输入函数?A. scanfB. printfC. getsD. puts3. 在C语言中,下面哪个关键字用于声明一个函数?A. varB. funC. defD. void...第二部分:编程题(共4题,每题25分,共100分)1. 编写一个程序,输入一个整数n,计算并输出1~n的累加和。
2. 编写一个程序,输入一个字符串,计算并输出字符串中字符的个数。
3. 编写一个程序,输入一个整数n,判断它是否是质数,输出判断结果(是/不是)。
4. 编写一个程序,输入一个整数n,输出它的阶乘结果。
...第三部分:编程实战题(共1题,共300分)题目:实现字符串排序要求:编写一个程序,输入一个字符串,对其进行升序排序,并输出排序后的结果。
示例输入:"hello world"示例输出:"dehllloorw"代码实现如下:```c#include <stdio.h>#include <string.h>void bubbleSort(char str[]) {int n = strlen(str);for (int i = 0; i < n-1; i++) {for (int j = 0; j < n-i-1; j++) {if (str[j] > str[j+1]) {char temp = str[j];str[j] = str[j+1];str[j+1] = temp;}}}}int main() {char str[100];printf("请输入一个字符串:");gets(str);bubbleSort(str);printf("排序后的结果:%s\n", str); return 0;}```...第四部分:编程项目(共1项目,共500分)项目:实现一个简单的留言板程序要求:编写一个C语言程序,实现一个简单的留言板功能。
计算机二级《C语言》模拟试题及答案3篇
计算机二级《C语言》模拟试题及答案第一篇:C语言基础知识1. C语言的发明人是谁?简要介绍一下他的背景。
2. int型变量的取值范围是多少?unsigned int呢?3. 请问下面这段代码输出的结果是什么?char str1[] = "hello";char str2[] = "world";strcat(str1, str2);printf("%s", str1);4. 以下哪些数据类型可以用来存储浮点数?A. floatB. doubleC. long doubleD. char5. 下列代码的输出结果是什么?int a = 1;long b = 2;float c = 3.0;printf("%ld\n", a + b + c);答案:1. C语言的发明人是丹尼斯·里奇(Dennis Ritchie)。
他于1941年出生在美国,是贝尔实验室研究员和计算机科学家。
在20世纪70年代,他和肯·汤普逊(Ken Thompson)合作,发明了UNIX操作系统和C语言。
C语言是一种高级计算机程序语言,在操作系统、编译器、数据库、游戏等领域被广泛使用。
丹尼斯·里奇因发明了C语言,被誉为“计算机编程之父”。
2. int型变量的取值范围是-2147483648到2147483647,unsigned int的取值范围是0到4294967295。
3. 输出结果为“helloworld”。
strcat是C语言的字符串拼接函数,将两个字符串连接成一个字符串。
在拼接之前,需要保证第一个字符串的数组足够大,以容纳两个字符串的内容。
如果第一个字符串不够大,程序会出现内存溢出等问题。
4. A、B、C三个数据类型可以用来存储浮点数。
5. 输出结果为“6”。
在printf函数中,%ld表示输出长整型数据,而c是一个float型变量。
国家二级C语言机试(C语言程序设计)模拟试卷1(题后含答案及解析)
国家二级C语言机试(C语言程序设计)模拟试卷1(题后含答案及解析)题型有:1. 选择题选择题1.若x为int变量,则以下语句的输出结果是( )。
x=1234;printf(“|\%-06d|n”,x);A.输出格式描述符不合法B.输出为|001234|C.输出为|1234|D.输出为|-01234|正确答案:C解析:本题主要考查C语言prinltf函数中格式控制字符串的使用,%表示格式说明的起始符号,“-”表示输出是否左对齐,“0”表示输出是空位是否填0。
在本题中格式字符串的“f”将原样输出。
若用格式描述’%6d’输出x值,则输出占6格,右对齐,左边用空格填满。
若用格式描述%06d,将输出x值,输出同上,只是左边用0填满。
若用格式描述%-06d,输出为左对齐即左边没有空位置,右边有空位置。
知识模块:C语言程序设计2.已知定义k为double类型变量,k=260.72631:p血t”%-6.2e \n”,k);则以上语句的输出结果是( )。
A.输出格式描述的域宽不够,不能输出B.输出为26.07e+01C.输出为2.6e+02D.输出为-2.64e2正确答案:C解析:在C语言中,使用e格式描述符输出浮点数时(浮点数将以指数形式输出),用户可指定输出数据的宽度和小数部分的位数,其一般形式为%m.he 或%-m.ne,其中m、n和字符“-”的含义均与上题所述相同。
需要指出的是,在不同的计算机系统中,虽然对指数部分应占宽度的规定不同,但是数值部分均按标准化指数形式输出(即小数点前必须有而且仅有一位非零数字)。
本题按标准化指数形式输出k值的整数部分,截去小数点并四舍五入,输出项k的实际宽度为9列,而格式说明中所给定的域宽为6,因此,将自动突破规定宽度,而按实际宽度输出,输出结果为2.6e+02。
知识模块:C语言程序设计3.若m是int型变量,n是noat型变量,所用的scanf调用语句格式为:scanf(“m=%d,n=%f,”&m,&n);则为了将数据10和66.6分别赋给m 和n,正确的输入应当是( )。
c语言二级模拟试题
c语言二级模拟试题# C语言二级模拟试题一、选择题(每题2分,共20分)1. 下列关于C语言的描述,不正确的是:A. C语言是一种高级编程语言B. C语言具有丰富的数据类型C. C语言是面向对象的编程语言D. C语言支持多文件编程2. 在C语言中,以下哪个关键字用于定义一个函数?A. `int`B. `void`C. `return`D. `function`3. 以下哪个运算符不能用于算术运算?A. `+`B. `-`C. `*`D. `&&`4. 在C语言中,以下哪个语句用于实现循环?A. `if`B. `switch`C. `while`D. `for`5. 以下哪个选项是C语言中的合法变量名?A. `2variable`B. `variable-name`C. `case`D. `default`6. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. `strcpy`B. `strcat`C. `strlen`D. `strncat`7. 在C语言中,以下哪个关键字用于定义一个结构体?A. `struct`B. `union`C. `enum`D. `typedef`8. 在C语言中,以下哪个语句用于定义一个枚举类型?A. `typedef`B. `enum`C. `struct`D. `union`9. 在C语言中,以下哪个函数用于计算一个整数的绝对值?A. `abs`B. `fabs`C. `floor`D. `ceil`10. 在C语言中,以下哪个函数用于将一个浮点数转换为字符串?A. `sprintf`B. `strcpy`C. `strcat`D. `atoi`二、填空题(每题2分,共20分)1. 在C语言中,`printf`函数用于_______。
2. 一个C语言程序的执行从`main`函数开始,`main`函数的返回类型通常是_______。
3. 在C语言中,`scanf`函数用于_______。
全国计算机等级考试二级C语言模拟试题及答案
全国计算机等级考试二级C语言模拟试题及答案(一) 一、选择题(1)栈和队列的共同特点是A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素D)没有共同点正确答案: C(2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是A)acbedB)decabC)deabcD)cedba正确答案: D(3)链表不具有的特点是A)不必事先估计存储空间B)可随机访问任一元素C)插入删除不需要移动元素D)所需空间与线性表长度成正比正确答案: B(4)结构化程序设计的3种结构是A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构正确答案: D(5)为了提高测试的效率,应该A)随机选取测试数据B)取一切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)集中对付那些错误群集的程序正确答案: D(6)算法的时间复杂度是指A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数正确答案: C(7)软件生命周期中所花费用最多的阶段是A)详细设计B)软件编码C)软件测试D)软件维护正确答案: D(8)数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为A)CB)BasicC)DDLD)DML正确答案: C(9)下列有关数据库的描述,正确的是A)数据库是一个DBF文件B)数据库是一个关系C)数据库是一个结构化的数据集合D)数据库是一组文件正确答案: C(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字正确答案: D(11)以下叙述中正确的是A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点正确答案: C(12)C语言中用于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B)if,switch,breakC)for,while,do-whileD)if,for,continue正确答案: A(13)C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型正确答案: B(14)若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1B)a=b=c+2C)int %3D)a=a+7=c+b正确答案: B(15)下列可用于C语言用户标识符的一组是A)void, define, WORDB)a3_b3, _123,CarC)For, -abc, IF CaseD)2a, DO, sizeof正确答案: B(16)C语言中运算对象必须是整型的运算符是A)%=B)/C)=D)<=正确答案: A(17)若变量a,i已正确定义,且i已正确赋值,合法的语句是A)a= =1B)++i;C)a=a++=5;D)a=int(i);正确答案: B(18)已知int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对正确答案: B(19)若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予,b赋予,c赋予,下列不正确的输入形式是A)10<回车>22<回车>33<回车>B),,<回车>C)<回车>22.033.0<回车>D)10 22<回车>33<回车>正确答案: B(20)有如下程序:main(){int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);} 该程序的输出结果是A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2正确答案: A(21)有以下程序main(){int i=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k); }执行后输出结果是A)1,1,2B)2,2,1C)2,2,2D)2,2,3正确答案: C(22)有如下程序main(){float x=,y;if(x<)y=;else if(x<)y=x;else y=;printf("%f\n",y);}该程序的输出结果是A)B)0.250000C)D)正确答案: C(23)有如下程序:main(){int n=9;while(n>6){n--; printf("%d",n);}}该程序的输出结果是A)987B)876C)8765D)9876正确答案: B(24)在下列选项中,没有构成死循环的是A)int i=100;while(1){i=i%100+1;if(i>100)break;}B)for(;;);C)int k=10000;do{k++;}while(k>10000);D)int s=36;while(s)--s;正确答案: D(25)设int x=1,y=1;表达式(!x||y--)的值是A)0B)1C)2D)-1正确答案: B(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参正确答案: D(27)有以下程序float fun(int x,int y){return(x+y);}main(){int a=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是A)编译出错B)9C)21D)正确答案: B(28)若有以下调用语句,则不正确的fun函数的首部是main(){ …int a[50],n;…fun(n, &a[9]);…}A)void fun(int m, int x[])B)void fun(int s, int h[41])C)void fun(int p, int *s)D)void fun(int n, int a)正确答案: D(29)fseek函数的正确调用形式是A)fseek(文件指针,起始点,位移量)B)fseek(文件指针,位移量,起始点)C)fseek(位移量,起始点,文件指针)D)fseek(起始点,位移量,文件指针)正确答案: B(30)若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是A)EOFB)-1C)1D)NULL正确答案: C(31)若有说明语句:char c='\72';则变量cA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定正确答案: A(32)若有说明 int a[3][4];则a数组元素的非法引用是A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]正确答案: D(33)设有以下说明语句struct stu{int a;float b;} stutype;则下面的叙述不正确的是A)struct是结构体类型的关键字B)struct stu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名正确答案: C(34)在C语言中,引用数组元素时,其数组下标的数据类型允许是A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式正确答案: C(35)若运行时给变量x输入12,则以下程序的运行结果是main(){int x,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}A)0B)22C)12D)10正确答案: A(36)以下说法正确的是A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分正确答案: C(37)表达式0x13^0x17的值是A)0x04B)0x13C)0xE8D)0x17正确答案: A(38)有以下程序#define F(X,Y)(X)*(Y)main(){int a=3, b=4;printf("%d\n", F(a++, b++)); }程序运行后的输出结果是A)12B)15C)16D)20正确答案: A(39)下列程序执行后的输出结果是void func(int *a,int b[]){ b[0]=*a+6; }main(){int a,b[5];a=0; b[0]=3;func(&a,b); printf("%d\n",b[0]);}A)6B)7C)8D)9正确答案: A(40)若有下面的程序段:char s[]="china";char *p; p=s;则下列叙述正确的是A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等C)s数组长度和p所指向的字符串长度相等D)*p与s[0]相等正确答案: D(41)以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序void sort(int a[],int n){int i,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){int aa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序运行后的输出结果是A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,C)1,2,3,8,7,6,5,4,9,10,D)1,2,10,9,8,7,6,5,4,3,正确答案: C(42)以下程序的运行结果是#include ""main(){struct date{int year,month,day;}today;printf("%d\n",sizeof(struct date));}A)6B)8C)10D)12正确答案: A(43)若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是A)a,point,*&aB)&*a,&a,*pointC)*&point,*point,&aD)&a,&*point,point正确答案: D(44)在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是A)地址传递B)单向值传递C)由实参传形参,再由形参传实参D)传递方式由用户指定正确答案: B(45)已定义以下函数fun(char *p2, char *p1){while((*p2=*p1)!='\0'){p1++;p2++;}}函数的功能是A)将p1所指字符串复制到p2所指内存空间B)将p1所指字符串的地址赋给指针p2C)对p1和p2两个指针所指字符串进行比较D)检查p1和p2两个指针所指字符串中是否有'\0'正确答案: A(46)若执行下述程序时,若从键盘输入6和8时,结果为main(){int a,b,s;scanf("%d%d",&a,&b);s=aif(a<b)s=b;s*=s;printf("%d",s);}A)36B)64C)48D)以上都不对正确答案: B(47)fscanf函数的正确调用形式是A)fscanf(fp,格式字符串,输出表列);B)fscanf(格式字符串,输出表列,fp);C)fscanf(格式字符串,文件指针,输出表列);D)fscanf(文件指针,格式字符串,输入表列);正确答案: D(48)下列关于C语言数据文件的叙述中正确的是A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件正确答案: D(49)有以下程序void ss(char *s,char t){while(*s){if(*s= =t)*s=t-'a'+'A';s++;}}main(){char str1[100]="abcddfefdbd",c='d';ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd正确答案: B(50)若以下定义:struct link{int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。
全国计算机二级C语言考试模拟题
全国高校计算机等级考试(二级C)模拟一试题一、选择题1、设有语句:int k, *p; 以下能正确执行的赋值语句是(D )。
A、k=pB、k=&pC、P=KD、p=&k2、以下运算符中优先级最高的运算符是(A)。
A、!B、&&C、||D、<3、求字符串长度的函数是( D )。
A、strcatB、strcpyC、strcmpD、strlen4、下面程序段的运行结果是(A)。
char x[5]=“ab\0c\0”;printf("%s",x);说明:“\0”中的“0”是数字零。
A、abB、abcC、ab\0D、ab\0c\05、若有说明语句: int a[2][4]; 则对数组a元素的正确引用是( D )。
A、a[2]B、a[4]C、a[2][4]D、a[1][3]6、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( B )。
A、float型B、int型C、long型D、double型7、用数组名作为函数调用的实参时,传递给虚参的是(A)。
A、数组的首地址B、数组第一个元素的值C、数组中全部元素的值D、数组元素的个数8、以下程序的输出结果是( D )。
#include<stdio.h>#define F(y) 8-yvoid main(void){int x,y;y=F(2);printf(“y=%d”,y);}A、2B、y=2C、6D、y=69、以下程序的输出结果是(A)。
#include<stdio.h>struct{int x,y;} a;void main(void){int x,y=50,z;a.x=10;a.y=20;z=a.x+y;printf(“%d”,z);}A、60 B 、10 C、0 D、2010、语句fopen(“file.dat”,”r”); 的功能是(A)。
A、按照“读”方式打开文件B、按照“写”方式打开文件C、按照“读写”方式打开文件D、按照“追加”方式打开文件11、关闭文件的语句是( D )。
计算机二级c语言考试试题及答案
计算机二级c语言考试试题及答案计算机二级C语言考试通常包括选择题、填空题、简答题和编程题等几种类型。
以下是一些模拟试题及答案,供参考:# 一、选择题1. 下列哪个是C语言的关键字?- A. `int`- B. `float`- C. `double`- D. `string`答案:A2. C语言中,以下哪个不是合法的变量名?- A. `my_var`- B. `2variable`- C. `variable_name`- D. `variable`答案:B3. 在C语言中,哪个运算符用于求余数?- A. `%`- B. `/`- C. `*`- D. `+`答案:A4. 以下哪个语句用于结束C程序?- A. `return 0;`- B. `exit(0);`- C. `end;`- D. `void main()`答案:A5. 在C语言中,数组的索引是从哪个数字开始的?- A. 0- B. 1- C. -1- D. 随机数答案:A# 二、填空题1. 在C语言中,`printf`函数用于______。
答案:输出信息2. 定义一个整型变量`a`并初始化为10,应使用语句:`int a =______;`答案:103. C语言中,`for`循环的一般形式为:`for(初始化表达式; 条件表达式; 迭代表达式) ______;`答案:{循环体}4. 字符串在C语言中以______字符结尾。
答案:'\0'5. 使用`scanf`函数从键盘读取数据时,需要在格式字符串中使用______来指定变量的地址。
答案:&# 三、简答题1. 请简述C语言中函数的作用和基本结构。
答案:函数是C语言中实现代码复用的一种方式。
一个函数通常用于执行一个特定的任务。
基本结构包括函数原型声明和函数定义。
函数原型声明了函数的返回类型、名称和参数列表。
函数定义则包含了函数的实现细节,即函数体。
2. 解释C语言中指针的概念及其用途。
c语言计算机二级试题及答案
c语言计算机二级试题及答案一、选择题1. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. whileC. returnD. void答案:A2. 以下哪个不是C语言的基本数据类型?A. intB. charC. doubleD. string答案:D3. 在C语言中,以下哪个操作符用于计算两个数的和?A. +B. -C. *D. /答案:A4. 以下哪个是C语言中正确的数组声明?A. int array[10];B. int array[];C. int array = 10;D. int array[10] = {0};答案:A5. 在C语言中,哪个函数用于将字符转换为对应的整数值?A. toupper()B. tolower()C. atoi()D. isalpha()答案:C二、填空题1. 在C语言中,定义一个字符变量可以使用关键字______。
答案:char2. 一个C语言程序的执行从______函数开始。
答案:main3. 在C语言中,使用______运算符可以实现字符串的连接。
答案:+4. 一个C语言程序中,如果需要使用数学函数,通常需要包含的头文件是______。
答案:math.h5. 在C语言中,使用______函数可以获取当前时间。
答案:time()三、简答题1. 简述C语言中指针和数组的关系。
答案:在C语言中,指针是一种特殊的变量,它存储的是内存地址。
数组名可以被看作是一个常量指针,它指向数组的第一个元素的地址。
因此,通过指针可以访问数组的元素。
指针运算和数组下标访问在底层是等价的。
2. 描述C语言中结构体的定义和使用。
答案:结构体是一种用户自定义的数据类型,它允许将不同的数据类型组合成一个单一的数据结构。
定义结构体时,使用关键字struct后跟结构体名和大括号内的成员定义。
使用结构体时,可以声明结构体变量,并通过点(.)操作符访问其成员。
四、编程题1. 编写一个C语言程序,实现两个整数的加法,并输出结果。
计算机二级c语言五套模拟卷及答案要点
4.以下表达式 : 2+ ’ a’ +i*f, 其中 i 为整型变量 ,f 为 float 型变量 ,则表达式的最终数据类型
为
。
A ) int
B) float
C) char
D) double
5.有如下语句 :
printf( “ %s,%5n.”3s, “ COMPUTE”R , “ COMPUTE”R );
3.编写一个函数计算一个字符串的长度,输入输出在主函数内完成。
(使用指针)
模拟试题二 一、选择题(本大题 30 分,每小题 2 分)
1.C 语言中不能用来表示整常数的进制是
。
A )十进制
B )十六进制
C)八进制
D )二进制
2.C 语言规定标识符由
等字符组成。
A )字母 数字 下划线 C)字母 数字 逗号
A )地址传递 C)双向值传递
B )单向值传递 D )随机传递
10.将字符串 str2 连接到字符串 str1 中应使用
A ) strcpy(str1,str2)
C) strcmp(str1,str2)
11.若有以下定义 :
int a[10],*p=a; 则 *(p+3) 表示的是
。
A )元素 a[3] 的地址
else a[i][j]= ,*? ; }
for(i=0;i<6;i++)
{ for(j=0;j<6;j++)
printf( “ %c” ,a[i][j]);
printf( n“” );}
}
} 24 分,每小题 4 分)
4.main( )
{ int i=2, x=5, j=7;
c语言二级考试题库
c语言二级考试题库考试题目一:1. (单选题)以下关于C语言中的运算符,哪个是正确的?A. = 是赋值运算符B. * 是取余运算符C. + 是自增运算符D. / 是逻辑与运算符答案:A2. (多选题)以下哪些是C语言的控制语句?A. if-else语句B. for循环语句C. switch语句D. do-while循环语句答案:A、B、C、D3. (填空题)下面的C语言代码片段中,缺少的语句是什么?```cint x = 10;float z = x / y;printf("%f", ____);```答案:z4. (判断题)在C语言中,可以使用浮点数来进行整数运算。
答案:错误考试题目二:1. (单选题)以下表达式的值是多少?```cint a = 10;int b = 5;int c = a++ + ++b;```A. 25B. 26C. 27D. 282. (多选题)以下哪些是C语言中的数据类型?A. intB. floatC. charD. string答案:A、B、C3. (填空题)下面的C语言代码片段中,缺少的语句是什么?```cint i;for (i = 0; i < 10; i++) {printf("%d ", i);}```答案:无4. (判断题)C语言中的逻辑运算符有 &&、|| 和 !。
答案:正确考试题目三:1. (单选题)以下哪个选项可以用来定义一个常量?A. const int x;B. readonly int y;C. final int z;D. let int w;答案:A2. (多选题)以下哪些是C语言中的关键字?A. whileB. switchC. goD. break答案:A、B3. (填空题)下面的C语言代码片段中,缺少的语句是什么?```cint x = 10;int y = (x > 5) ? 1 : 0;printf("%d", ____);```答案:y4. (判断题)在C语言中,可以直接对两个字符串进行比较运算。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
江苏省二级C语言考试模拟试题1(注:只有C部分,没有公共基础部分)-、选择题[请用答题卡答题,答案依次填在(21)-(30)答题号内]21.已知有声明语句int x=8,则下列表达式中,值为2的是(21).A.x+=x-=xB.x%=x-2C.x>8?x=0:x++D.x/=x+x22.以下关于函数的叙述中正确的是(22)A.在函数体中可以直接引用另一个函数中声明为static类别的局部变量的值B.在函数体中至少必须有一个return语句C.在函数体中可以定义另一个函数D.在函数体中可以调用函数自身23.若有声明语句"int a[10],b[3][3];",则以下对数组元素赋值的操作中,不会出现越界访问的是(23)A.a[-1]=0B.a[10]=0C.b[3][O]=0D.b[0][3]=024.数组和链表都可以用于存储一组彼此有关联的数据,以下说法中不正确的是(24)A.数组占用一块连续的存储区域,链表可能占用若干块不连续的存储空间B.数组和链表所占用的存储区域均不能在程序运行期间动态地分配c.数组中的数据可以随机存取或顺序存取,链表中的数据只能顺序存取D.数组的长度是固定的,链表的长度是不固定的25.设有定义和声明语句:typedef struct dtype{int a;struct dtype *b;}node;static node x[3]={5,&x[1],7,&x[2],9,'\0'},*prt=&x[0];下列选项中,表达式值不为5的是(25)A.x[1].b->a-2B.ptr->b->a-2C.(ptr+1)->a-2D.ptr->a26.在以下程序中,需要在main函数之后定义-个函数,以下选项中(26)可以用做该函数的名字#define p 3.14int y;main(){int a=1;函数名(a);... /*若干执行语句*/}int 函数名(int x){return x*x;}A.mainB.yC.pD.print27.若有声明语句"char ch='a',*pc=&ch;",以下语句中有语法错误的是 (27)A.(*pc)++;B.ch+=-'a'+'A';C.toupper(ch)=ch;D.ch++;28.已知有语句"FILE *fp;int x=123;fp=fopen("out.dat","w");",如果需要将变量x的值以文本形式保存到一个磁盘文件out.dat中,则以下函数调用形式中正确的是(28)A.fprintf("%d",x);B.fprintf(fp,"%d",x);C.fprintf("%d",x,fp);D.fprintf("out.dat","%d",x);29.已知有声明语句"int a[5]={l,2,3,4,5},*p,i;",以下语句中(29)不能正确输出a数组全部元素的值A.for(p=a,i=0;i<5;i++)printf("%d",*(p+i));B.for(p=a;p<a+5;p++)printf("%d",*P);C.for(p=a,i=0;p<a+5;p++,i++)printf("%d",p);D.for(p=a;p<a+5;p++)printf("%d",p[0]);30.已知有声明语句"char s1[10]="12345",s2[10]="abode",s3[10];",以下语句中能将s1中存储的字符串和s2中存储的字符串正确交换的是 ( 30 )A.s3=s1,s1=s2,s2=s3;B.s3[0]=s1[0],s1[O]=s2[O],s2[0]=s3[O];C.strcpy(s3[0],s1[O]),strcpy(s1[0],s2[0]),strcpy(s2[O],s3[0]);D.strcpy(s3,s1),strcpy(s1,s2),strcpy(s2,s3);二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占-行)基本概念题(共5分)1.包含二目运算符的表达式可一般地表示为(x)op(y),其中op代表运算符,x、y代表操作数若op是关系运算符或逻辑运算符,则不管x、y为何值,表达式的值是(1)2.在c语言中大部分执行语句都含关键字,例如,for语句含关键字for,除这些语句外不含关键字的非空操作语句是(2)3.常量'\n'的数据类型是(3)4.当程序读写数据文件时,需要有声明语句"FILE *fp;",在该声明语句之前必须包含头文件(4)5.已知main函数中有声明"int a[10];",若在main函数中出现语句"fun(a);",执行该函数调用语句时传递给fun函数对应位置形式参数的值是(5):阅读程序写出运行结果题(共10分)6.以下程序运行时输出 (6)fun(int k){static int i;int s,j=0;return ++i+k+j++;}main(){static int i,n;for(i=O;i<4;i++) n+=fun(i);printf("%3d",n);}7.以下程序运行时输出 ( 7 )int f(int x,int y){return x/y+x%y;}main(){float a=1.5,b=2.5,c=f(a,b);printf("%.2f",c);}8.以下程序运行时输出的两个数分别是 (8) 和 (9)main(){ int x=1,y,k;for(k=0;k<5;k++){ int x=1;x++;if(k==4)y=x;}printf("%d,%d",x,y);}9.以下程序运行时输出第一个数是(10 ) ,第二个数是( 11 ) ,第三个数是( 12 ) #include <math.h>main(){static int a[3][3],i,j;for(i=0;i<3;i++)for(j=0;j<3;j++){ switch(abs(i-j)){case 0: if(i==0 || i==2)a[j]+=3;else a[j]++;break;case 1:a[j]+=2;break;case 2:a[j]+=3;}}printf("%d,%d,%d",a[1][1],a[1][2],a[2][0]);}10.以下程序运行时输出第一行是(13) ,第二行是(14)#include <string.h>int convert(char s1[],char s2[]){ int i=0,j,s;char tab[8][4]={"000","001","010","011","100","101","110","111"}; for(i=0,j=O;s1!='\0';i++,j=j+3) strcpy(&s2[j],tab[s1-'0']);for(i=0,s=O;i<strlen(s2);i++) s=s*2+s2-'0';return s;}main(){char ss1[]="15",ss2[80];int y;y=convert(ss1,ss2);printf("%d\n%s",y,ss2);}11.以下程序运行时输出 ( 15 )long func(long x){if(x<100) return x%10;else return func(x/100)*10+x%10;}main(){printf("The result is:%ld\n",func(132645));}●完善程序题(共15分)12.函数loop(s,m,n,str)的功能是:对字符串str中,从下标为s的字符开始的所有间隔为m的字符进行循环左移,即:str[s]<--str[s+m],str[s+m]<--str[s+2m],..,str[s+(k-1)m] -str[s+km],str[s+km]<--str[s](k为整数,下标s+km不越界),共做n次例如,调用loop(1,2,1,str)前后str中数据的变化情况如下:str中初始数据:A B C D E F G H I J K移位后str数据:A D C F E H G J I B K#include <stdio.h>#include <string.h>void loop(int s,int m,int n,char *str);main(){char buf[81];strcpy(buf,"ABCDEFGHIJK");puts(buf);loop(1,2,2,buf);puts(buf);}void loop(int s,int m,int n,char*str){ char c;int k;int i,len;len=strlen(str);for(i=O;i<n;i++){k=(16);c=str[k];while(k+m< (17)){str[k]=str[k+m];k=(18);}(19) =c;}}13.以下程序验证一个猜想:任意一个十进制正整数与其反序数相加后得到一个新的正整数,重复该步骤最终可得到一个回文数(所谓反序数,是指按原数从右向左读所得到的数,例如,123的反序数是321所谓回文数,是指一个数从左向右读的值与从右向左读的值相等例如,12321、234432都是回文数)#include<stdio.h>long invert(long x);main(){long n,c=0;printf("input a number:");scanf("%ld",&n);while((20)){printf("input a number:");scanf("%ld",&n);}n=n+invert(n);c++;while((21)){n=n+invert(n);c++;}printf("%ld,count=%ld",n,c);}long invert(long x) /*生成并返回x的反序数*/{long s;for(s=0;x>0; ( 22 ) ) s=s*10+x%10;return s;}14.已知某链表中结点的数据结构定义如下:struct node{int x;struct node *next;};函数find_del的功能是:在参数head指向的链表中查找并删除x值最大的结点,如有多个相同的x值最大的结点,删除第一个结点,保存该结点的地址到pm指向的指针变量中, 函数返回链表首结点的指针struct node *find_del(struct node *head,struct node **pm){struct node *p1,*p2,*pmax,*pre;if(head==NULL)return NULL;pmax=( 23 );p2=p1=pmax;while(p1){if(p1->x>( 24 )){pre=p2;pmax=p1;}p2=p1:p1=p1->next;}if(pmax==head)head=pmax->next;else ( 25 ) =pmax->next;( 26 )=pmax;return head;}15.以下程序对一组点坐标(x,y)按升序进行排序,要求:先按x的值排序,若x的值相同,则按y的值排序,排序算法为选择法#include<stdio.h>#define N 5typedef struct{int x,y;}POINT;void point_sort( (27) *x,int n){POINT t;int i,j,k;for(i=0;i<n-1;i++){ (28) ;for(j=( 29 );j<n;j++)if((x[k].x)>(x[j].x))k=j;else if((30)&&x[k].y>x[j].y)k=j;if(k!=i)t=x,x=x[k],x[k]=t;}}main(){POINT a[N]={0};int i=0;while(i<N){scanf("%d%d",&a.x,&a.y);i++;}point_sort(a,N);for(i=0;i<N;i++) printf("\n%d,%d",a.x,a.y);}21.B 22.D 23.D 24.B 25.A 26.B 27.C 28.B 29.C 30.D(1)0或1 (2) (3)字符 (4)#include <stdio.h> (5)a的地址(6)6 (7)1 (8)1 (9)2 (10)1 (11)2 (12)3 (13)13 (14)001101(15)The result is:365 (16)s (17)len (18)k+m (19)str[k](20)n<=0 (21)n!=invert(n) (22)x=x/10 (23)head (24)pmax->x(25)pre->next (26)*pm (27)POINT (28)k=i (29)i+1 (30)x[k].x==x[j].x。