江苏省二级C语言考试模拟试题1(注只有C部分,没有公共基础部分)

合集下载

江苏省计算机等级考试二级C上机考试模拟试题

江苏省计算机等级考试二级C上机考试模拟试题

江苏省计算机等级考试二级C上机考试模拟试题C01一、改错题(18分)【程序功能】下列程序中函数fun的功能是:首先将s数组中的字符串按以下规则复制到t数组:对于下标值为偶数位置上的字符复制n次(n=下标值+1),对于下标值为奇数位置上的字符只复制一次;其次将t数组中的字符串按字符编码从小到大的顺序排序。

【测试数据与运行结果】当s中的字符串为“abcdefg”时,运行结果应为“abcccdeeeeefggggggg”当s中的字符串为“”时,运行结果应为“6”【含有错误的源程序】#include "stdio.h"#include "conio.h"void fun (char *s, char *t){ int i,j,k,n=0; char temp;for(i=0;s[i]!='\0';++i)if(i%2=0)for(k=0;k<i+1;++k){ t[n]=s[i]; n++; }else t[n]=s[i];t[n]='\0';for (i=0;i<n-1;i++){k=i;for (j=0;j<n;j++)if(t[j]<t[k])k=j;if(k!=i){ temp=t[i]; t[i]=t[k]; t[k]=temp; }}}main(){ char s[20], t[100];printf("\nPlease enter string s:"); gets(s);fun(s);printf("The result is: %s\n", t);getch();}【要求】1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。

2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句。

江苏省二级c语言基础知识题

江苏省二级c语言基础知识题

附加部分模拟题:(1)第2代电子计算机使用的电子元件是A)晶体管B)电子管C)中、小规模集成电路D)大规模和超大规模集成电路【答案】A【解析】第1代计算机是电子管计算机,第二代计算机是晶体管计算机,第3代计算机主要元件是采用小规模集成电路和中规模集成电路,第4代计算机主要元件是采用大规模集成电路和超大规模集成电路。

(2)除了计算机模拟之外,另一种重要的计算机教学辅助手段是A)计算机录像B)计算机动画C)计算机模拟D)计算机演示【答案】C【解析】计算机作为现代教学手段在教育领域中应用得越来越广泛、深入。

主要有计算机辅助教学、计算机模拟、多媒体教室、网上教学和电子大学。

(3)计算机集成制作系统是A)CADB)CAMC)CIMSD)MIPS【答案】C【解析】将CAD/CAM和数据库技术集成在一起,形成CIMS(计算机集成制造系统)技术,可实现设计、制造和管理完全自动化。

(4)十进制数215用二进制数表示是A)1100001B)1101001C)0011001D)11010111【答案】D【解析】十进制向二进制的转换前面已多次提到,这一点也是大纲要求重点掌握的。

采用"除二取余"法。

(5)十六进制数34B对应的十进制数是A)1234B)843C)768D)333【答案】B【解析】十六进制数转换成十进制数的方法和二进制一样,都是按权展开。

(6)二进制数0111110转换成十六进制数是A)3FB)DDC)4AD)3E【答案】D【解析】二进制整数转换成十六进制整数的方法是:从个位数开始向左按每4位二进制数一组划分,不足4位的前面补0,然后各组代之以一位十六进制数字即可。

(7)二进制数10100101011转换成十六进制数是A)52BB)D45DC)23CD)5E【答案】A【解析】二进制整数转换成十六进制整数的方法是:从个位数开始向左按每4位二进制数一组划分,不足4位的前面补0,然后各组代之以一位十六进制数字即可。

江苏省二级C笔试模拟练习题(1)

江苏省二级C笔试模拟练习题(1)

江苏省高等学校非计算机专业学生计算机基础知识和应用能力等级考试二级C语言全真模拟试卷(1)(本试卷包括计算机基础知识部分和程序设计部分,考试时间共120分钟)说明:1.本试卷满分为60分,分选择题和填空题,试卷不分A、B类型。

2.选择题用答题卡答题。

每一项有A、B、C、D四个可供选择的答案,请选择其中一个你认为正确的答案,用HB铅笔涂写在答题卡的相应答题号内。

每选对一项得1分,不选或选错不得分。

3.填空题用答题纸答题。

请将答案填写在答题纸的相应答题号内,每个答案只占一行,不得换行。

每填对一个答案得1分,不填或填错不得分。

4.请认真填写并仔细核对答题卡和答题纸上的学校名称、准考证号和姓名是否填写正确。

第一部分计算机基础知识1.信息处理系统是综合使用信息技术的系统。

下面有关信息处理系统的叙述中错误的是____1____。

A.信息处理系统从自动化程度来看,有人工的、半自动化的和全自动化的B.应用领域很广泛。

例如银行是一种以感知与识别为主要目的的系统C.信息处理系统是用于辅助人们进行信息获取、传递、存储、加工处理及控制的一种系统D.从技术手段上来看,有机械的、电子的和光学的;从通用性来看,有专片和通用的2.下面关于集成电路的叙述中,错误的是2。

A.集成电路是20世纪50年代出现的B.现代集成电路使用的半导体材料通常是硅或砷化镓C.集成电路的许多制造工序必须在恒温、恒湿、超洁净的无尘厂房内完成D.集成电路按用途可分为通用和专用两大类。

微处理器和存储器芯片都属于专用集成电路3.在通信系统的性能指标中,3是指数据传输中出错数据占被传输数据总数的比例。

A.信道带宽B.误码率C.数据率D.端-端延迟4.以下数据最大的是4。

A.01110110B B.120D C.7DH D.177Q 5.从逻辑功能上来讲,计算机硬件主要包括中央处理器(CPU)、内存储器、外存储器、输入设备和输出设备等,它们通过5互相连接。

A.总线B.控制线C.数据线D.地址线6.6接口是一种新的I/O接口,它是一种可以连接多个设备的总线式串行接口,2.0版的数据传输速率可高达480Mb/s(60MB/s),最多可以连接127个设备。

江苏省计算机二级模拟考试(VC++)(试卷1)

江苏省计算机二级模拟考试(VC++)(试卷1)

}
void main()
{
char *str1="abababa", *str2="aba";
int num=0, t=0,t1, result[10];
while(1){
if((t1=index(str1+t1, str2))==-1) // index(str1+t, str2)
4'
break;
cout<<x<<endl; } private: int x; }; class B:public A{ public: B(int i):A(i+10){
x=i; } void displayB(){
displayA(); cout<<x<<endl; } private: int x; }; int main() { A a(3); a.displayA(); B b(2); b.displayB(); return 0; } 程序输出的第一行是__________,第二行是__________,第三行是__________。
【答案:B 】
2.[题号:127](单选题) (知识点:构造函数) 分值:2 在C++中,能实现对象初始化功能的是__________。
A. 析构函数 B. 数据成员 C. 构造函数 D. 静态成员函数
【答案:C 】
3.[题号:128](单选题) (知识点:类的继承与派生) 以下对于派生类的描述中,错误的是__________。
if(s1[i+j]==s2[j])
break;
if(j==len2)
return i+1;

江苏省计算机二级C语言历年真题及答案

江苏省计算机二级C语言历年真题及答案

2009年春季江苏省高校计算机等级考试考试试题第一部分计算机基础知识1. 在下列有关现代信息技术的一些叙述中,正确的是 1 。

A.集成电路是20世纪90年代初出现的,它的出现直接导致了微型计算机的诞生B.集成电路的集成度越来越高,目前集成度最高的已包含几百个电子元件C.目前所有数字通信均不再需要使用调制解调技术和载波技术D.光纤主要用于数字通信,它采用波分多路复用技术以增大信道容量‘.2. 最大的10位无符号二进制整数转换成八进制数是 2 .。

A.1023B.1777C.1000D.10243. 在下列有关目前PC机CPU的叙述中,错误的是 3 。

A.CPU芯片主要是由Intel公司和AMD公司提供的B."双核"是指PC机主板上含有两个独立的CPU芯片C.Pentium 4微处理器的指令系统由数百条指令组成D.Pentium 4微处理器中包含一定容量的Cache存储器4. 在下列有关当前PC机主板和内存的叙述中,正确的是 4 。

A.主板上的BIOS芯片是一种只读存储器,其内容不可在线改写B.绝大多数主板上仅有一个内存插座,因此PC机只能安装一根内存条C.内存条上的存储器芯片属于SRAM(静态随机存取存储器)D.目前内存的存取时间大多在几个到十几个ns(纳秒)之间5. 在下列有关PC机辅助存储器的叙述中,正确的是 5 。

A.硬盘的内部传输速率远远大于外部传输速率B.对于光盘刻录机来说,其刻录信息的速度一般小于读取信息的速度C.使用USB 2.0接口的移动硬盘,其数据传输速率大约为每秒数百兆字节D.CD-ROM的数据传输速率一般比USB 2.0还快6. 在下列PC机I/O接口中,数据传输速率最快的是 6 。

B 2.0B.IEEE-1394C.IrDA (红外)D.SATA7. 计算机软件可以分为商品软件、共享软件和自由软件等类型。

在下列相关叙述中,错误的是7 。

A.通常用户需要付费才能得到商品软件的使用权,但这类软件的升级总是免费的B.共享软件通常是一种"买前免费试用"的具有版权的软件C.自由软件的原则是用户可共享,并允许拷贝和自由传播D.软件许可证是一种法律合同,它确定了用户对软件的使用权限8. 人们通常将计算机软件划分为系统软件和应用软件。

江苏省二级C语言上机模拟试卷1及参考答案

江苏省二级C语言上机模拟试卷1及参考答案

江苏省二级C语言上机考试试卷-1(本试卷完成时间 70分钟)一、改错题(16分)【程序功能】合并两个一维升序数组,合并后的数组仍然保持升序。

【测试数据与运行结果】测试数据:数组1: 5,9,19数组2: 12,24,26,37,48运行结果:合并后的数组:5,9,12,19,24,26,37,48【含有错误的源程序】#include<stdio.h>void sort(int array[],int n){int i,j,t;for(i=1;i<n;i++){t=array[i];for(j=i;t<array[j]&&j>=0;j--)array[j+1]=array[j];array[j]=t;}}void merge(int *a1,n1,*a2,n2,*a3){int i=j=k=0;while(i<n1&&j<n2)if(a1[i]>a2[j])a3[k++]=a2[j++];elsea3[k++]=a1[i++];while(i<n1)a3[k++]=a1[i++];while(j<n2)a3[k++]=a2[j++];}int main(void){int s1[3],i,s2[5],s3[8];for(i=0;i<3;i++)scanf("%d",&s1[i]);for(i=0;i<5;i++)scanf("%d",&s2[i]);sort(s1,3);sort(s2,5);merge(s1,3,s2,5,s3);for(i=0;i<8;i++)printf("%3d", s3[i]);}【要求】1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。

江苏省二级C语言试题

江苏省二级C语言试题

1.下面关于比特的叙述中,错误的是( 1 )A.比特是组成数字信息的最小单位B.比特只有“O”和“1”两个符号C.比特既可以表示数值和文字,也可以表示图像和声音D. 比特”1”总是大于比特“0”2.在下列有关集成电路的叙述中,错误的是( 2 )A.现代集成电路使用的半导体材料主要是硅B.大觑模集成电路一般以功能部件、子系统为集成对象C.我国第2代居民身份证中包含有IC芯片D•目前超大规模集成电路中晶体管的基本线条已小到l纳米左右3.在下列有关通信技术的叙述中,错误的是( 3 )A.通信的基本任务是传递信息,因而至少需由信源、信宿和信道组成B.通信可分为模拟通信和数字通信,计算机网络属于模拟通信C.在通信系统中,采用多路复用技术的目的主要是提高传输线路龟利用率D学校的计算机机房一般采甩5类无屏蔽双绞线作为局域网的传输介质4.下面是关于PC机主存储器的一些叙述,其中正确的是( 4 )A.主存储器是一种动态随机存取存储器(RAM)B.主存储器的基本编址单位是字(即32个二进位)C.目前市场上销售的PC机,其内存容量可达数十GBD.所有PC机的内存条都是通用的:可以互换5.现行PC机中,IDE(或SA TA)接口标准主要用于( 5 )A.打印机与主机的连接c.声卡与主机的连接B.显示器与主机的连接D.硬盘与主机的连接6. 下列有关PC机的CPU、内存和主板的叙述中,正确的是( 6 ) 。

A.大多数Pc机只存一块CPu芯片,即使是“双核”CPU也是一块芯片B.所有Pentium系列微机的内存条相同,仅有速度和容量大小之分C.主板上芯片组的作用是提供存储器控制功能,I/O控制与芯片组无关D.主板上CMOS芯片用于存储CMOS设置程序和一些软硬件设置信息7.下列有关目前Pc机辅助存储器的叙述中,错误的是( 7 )A.硬盘的容量越来越大,这是因为硬盘中磁盘碟片的数目越来越多B.硬盘的内部传输速率一般小于外部传输速率c.优盘采用Flash存储器技术,属于半导体存储器D.目前常见COMBO光驱是一种将CD-RW和DVD-ROM组合在一起的光驱8.下面有关Windows操作系统,(95以后版本)的叙述中,错误的是( 8 ) 。

江苏省计算机二级考试c真题及答案

江苏省计算机二级考试c真题及答案

江苏省计算机二级考试c真题及答案一、单项选择题(每题2分,共20分)1. C语言中,以下哪个选项是合法的整型常量?A. 0x12B. 0x12.3C. 0x12LD. 0x12F答案:A2. 在C语言中,以下哪个选项是合法的字符常量?A. 'a'B. "a"C. 'ab'D. '0'答案:A3. 若有以下定义:int a=2, b=3; 则表达式a++ + b的值是多少?A. 4B. 5C. 6D. 7答案:B4. 在C语言中,以下哪个选项是合法的数组声明?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2, 3};D. int arr = {1, 2, 3, 4, 5};答案:B5. 在C语言中,以下哪个选项是合法的函数声明?A. void func();B. int func(int a, int b);C. int func();D. void func(int a, int b);答案:D6. 在C语言中,以下哪个选项是合法的指针声明?A. int *ptr;B. int ptr[];C. int *ptr[];D. int ptr[5];答案:A7. 在C语言中,以下哪个选项是合法的循环结构?A. for(;;)B. while(1)C. do{} while(0);D. All of the above答案:D8. 在C语言中,以下哪个选项是合法的switch语句?A. switch(a) { case 1: break; }B. switch(a) { default: break; }C. switch(a) { case 1: case 2: break; }D. All of the above答案:D9. 在C语言中,以下哪个选项是合法的宏定义?A. #define PI 3.14159B. #define PI = 3.14159C. #define PI 3.14159D. #define PI 3.14159答案:A10. 在C语言中,以下哪个选项是合法的结构体声明?A. struct { int a; float b; } point;B. struct point { int a; float b; };C. struct { int a; float b; } point;D. Both A and B答案:D二、填空题(每题2分,共20分)1. 在C语言中,若变量a的值为5,执行语句a %= 3后,a的值为________。

计算机二级《C语言》模拟试题及答案3篇

计算机二级《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(试题+答案)

江苏省计算机等级考试二级C上机考试模拟试题试题 1一、改错题(18分)【题目】函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上各元素之和,返回此和数。

含有错误的程序如下:#include <conio.h>#include <stdio.h>#define M 5int fun(int n,int xx[][]){ int i,j,sum;printf("\nThe %d x %d matrix:\n",M,M);for(i=0;i<M;i++){ for(j=0;j<M;j++)printf("%f",xx[i][j]);printf("\n");}for(i=0;i<n;i++)sum+=xx[i][i]+xx[i][n-i];return(sum);}main( ){int aa[M][M]={ {1,2,3,4,5},{4,3,2,1,0},{6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};clrscr( );printf ("\nThe sum of all elements on 2 diagnals is %d.",fun(M,aa));}【要求】1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。

2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译处理命令,但不能增加其他语句,也不能删去整条语句。

3.改正后的源程序(文件名myf1.c)必须放在考试软盘的根目录下,供阅卷用,否则不予评分。

二、编程题(22分)【题目】1.编写函数fun,函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第m个字符平移到字符串的最后,把第m+1到最后的字符串移到字符串的前部。

No1_江苏省二级C语言等级考试计算机基础部分参考题(2013.3)

No1_江苏省二级C语言等级考试计算机基础部分参考题(2013.3)

附录1 计算机基础题20%F1数制与码F1.1 数1、(05春1)十进制数100 对应的二进制数、八进制数和十六进制数分别是_________ 。

A.1100100B 、144Q 和64H B.1100110B 、142Q 和62HC.1011100B 、144Q 和66H D.1100100B 、142Q 和60H2、(05秋4)在下列有关计算机中数值信息表示的叙述中,错误的是_____________ 。

A.正整数无论是采用原码表示还是补码表示,其编码都是相同的B.相同位数的二进制补码和原码,他们能表示的数的个数也是相同的C.在实数的浮点表示中,阶码是一个整数D.从精度上看,Pentium处理器支持多种类型的浮点数3、(06春4)在计算机中,数值为负的整数一般不采用“原码”表示,而是采用“补码”方式表示。

若某带符号整数的8位补码表示为1000 0001,则该整数为_____________ 。

A.129B.-1C.-127D.1274、(06秋3)所谓“变号操作”,是指将一个整数变成绝对值相同但符号相反的另一个整数。

假设使用补码表示的8位整数X=10010101,则经过变号操作后,结果为________。

A.01101010 B.00010101 C.11101010 D.011010115、(06秋4)若计算机内存中连续2个字节的内容其十六进制形式为34和64,则它们不可能是________。

A.2个西文字符的ASCII码C.1个16位整数B.1个汉字的机内码D.图像中一个或两个像素的编码6、(07春3)二进制数(1010)2与十六进制数(B2)16相加,结果为________。

A.(273)8 B.(274)8 C.(314)8 D.(313)87、(07秋1)下面关于比特的叙述中,错误的是________。

A.比特是组成数字信息的最小单位B.比特只有“0”和“l”两个符号C.比特既可以表示数值和文字,也可以表示图像和声音D.比特“1”总是大于比特“0”8、(08秋2)二进制数10111000 和11001010 进行逻辑“与”运算,结果再与10100110 进行逻辑“或”运算,最终结果的十六进制形式为__________。

江苏省二级C语言考试样卷(2015)

江苏省二级C语言考试样卷(2015)
2 / 11


3.一元二次方程 ax2+bx+c=0 有两个相异实根的条件是 a≠0 且 b2-4ac>0,以下选项中能正确表示 该条件的 C 语言表达式是 A. a!=0,b*b-4* C.a&& b*b-4*a*c >0 D. !a&& b*b-4*a*c >0 4.若有一函数定义为“int f(int x,int y){return x/*y;}” ,声明该函数的正确形式是 A. void f(int,int); B.int *f(int,int *); C.int f(int *,int *); D.int f(int,int *); 5.已有定义和声明: stuct student { int no; char name[20]; stuct{int year,month,day;}birth; }s; 若要求将日期“1989 年 11 月 12 日”保存到变量 s 的 birth 成员中,则能实现这一功能的程序段 是 。 。 。
A.芯片组是主板上最为重要的部件之一,存储器控制、 I/O 控制等功能主要由芯片组实现 B.芯片组与 CPU 同步发展,有什么样功能和速度的 CPU,就需要使用什么样的芯片组 C.芯片组决定了主板上能安装的内存最大容量及可使用的内存条类型 D.同 CPU 一样,用户可以很方便、很简单地更换主板上的芯片组 3.下列关于 I/O 设备的叙述中,错误的是 。
A.目前 PC 采用的硬盘,其盘片的直径通常为 3.5 英寸、2.5 英寸或 1.8 英寸 B.U 盘和存储卡都是采用闪烁存储器制作的,目前其容量大多为几 GB 至几十 GB C.目前固态硬盘的存储容量大多为数百 GB,但其读写速度远不如传统硬盘(硬磁盘) D.蓝光光盘是目前最先进的大容量光盘,单层盘片的存储容量可达 25GB 5.下列关于 Windows 操作系统功能的叙述中,错误的是。 A.对于多任务处理,系统一般采用按时间片轮转的策略进行处理器调度 B.系统采用了虚拟存储技术进行存储管理,其页面调度算法为“最近最少使用” (LRU)算法 C.系统支持多种文件系统(如 FAT32、NTFS、CDFS 等)以管理不同的外存储器 D.系统支持任何 I/O 设备的“即插即用”和“热插拔” 6.下列关于程序设计语言的叙述中,错误的是 。

江苏二级C语言笔试试卷参考答案及解析

江苏二级C语言笔试试卷参考答案及解析

2006 年(秋)笔试试卷参考答案及解析第一部分计算机基础知识(1)D)【解析】目前硅的集成电路大规模生产技术已经达到0.13~0.09 微米,进一步将到0.07微米,也就是70 个纳米甚至更小。

根据预测,到2022 年,硅集成电路技术的线宽可能达到10 纳米,这个尺度被认为是硅集成电路的“物理极限”。

(2)D)【解析】调制解调器的英文是Modem,它的作用是利用模拟信号传输线路传输数字信号。

电子信号分两种,一种是“模拟信号”,另一种是“数字信号”。

我们使用的电话线路传输的是模拟信号,而PC 机之间传输的是数字信号。

所以当用户想通过电话线把自己的电脑连入Internet 时,就必须使用调制解调器来“翻译”两种不同的信号。

连入Internet 后,当PC 向Internet 发送信息时,由于电话线传输的是模拟信号,所以必须要用调制解调器来把数字信号“翻译”成模拟信号,才能传送到Internet 上,这个过程叫做“调制”。

(3)D)【解析】补码表示的8 位整数X=10010101,首先将其转化为原码(符号位不变取反加1),X 的原码为11101011,然后变号操作即为01101011。

(4)B)【解析】汉字机内码要占用至少 2 字节,计算机内存中连续 2 字节的内容其十六进制形式为34 和64,34H=110100B,64H=1100100B,2 个字节才13 位,达不到 2 字节16 位。

(5)C)【解析】虽然随着CPU 技术的不断发展,Intel 陆续研制出更新型的i80386、i80486 直到过去的PII 至强、PIII 至强、Pentium 3,最后到今天的Pentium 4 系列、至强(不包括至强Nocona),但为了保证电脑能继续运行以往开发的各类应用程序以保护和继承丰富的软件资源,所以Intel 公司所生产的所有CPU 仍然继续使用X86 指令集,所以它的CPU 仍属于X86 系列。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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());}●完善程序题(共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、都是回文数)#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)(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。

相关文档
最新文档