4-江苏省计算机等级考试C语言上机模拟题

合集下载

计算机二级考试C语言上机试题(100题)

计算机二级考试C语言上机试题(100题)

1.程序填空题在主函数中从键盘输入若干个数放入数组a中,用0结束输入但不计入数组。

下列给定程序中,函数fun的功能是:输出数组元素中小于平均值的元素。

例如,数组中元素的值依次为34、54、675、456、453、121,则程序的运行结果为34、54、121。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!#include <conio.h>#include <stdio.h>void fun(___1___,int n){double count=0.0;double average=0.0;int i=0;for(i=0;i<n;i++)___2___;average=___3___;for(i=0;i<n;i++)if(a[i]<average){if(i%5==0)printf("\n");printf("%d,",a[i]);}}main(){int a[1000];int i=0;printf("\nPlease enter datas(end with 0):");do{scanf("%d",&a[i]);}while(a[i++]!=0);fun(a,i-1);}【答案】(1) int a[] (2)count+=a[i]或count=count+a[i] (3)count/n2.程序修改题给定程序中,函数fun的功能是:根据整型形参m,计算如下公式的值:y=1+1/(2*2)+1/(3*3)+1/(4*4)+…+1/(m*m)例如:若m中的值为5,则应输出1.463611。

请改正程序中的错误,使其能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include <stdio.h>double fun(int m){double y=1.0;int I;/**********found**********/for(i=2;i<m;i++)/**********found**********/y+=1/(i*i);return(y);}main(){int n=5;printf("\nThe result is %lf\n", fun(n));}【答案】(1)将for(i=2;i<m;i++) 改为:for(i=2;i<=m;i++)(2)将y+=1/(i*i); 改为:y +=1.0/(i*i);3.程序设计题函数fun的功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。

计算机二级C语言上机复习题及答案解析范文一份

计算机二级C语言上机复习题及答案解析范文一份

计算机二级C语言上机复习题及答案解析范文一份计算机二级C语言上机复习题及答案解析 1计算机二级C语言上机复习题及答案解析填空题给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息。

ss所指字符串数组__有N个字符串,且串长小于M。

程序中库函数strstr(s1, s2)的功能是在s1串中查找s2子串,若没有,函数值为0,若有,为非0。

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!给定源程序:#include#include#define N 5#define M 15void fun(char (*ss)[M], char *substr){ int i,find=0;for(i=0; i __1__ ; i++)if( strstr(ss[i], __2__) != NULL ){ find=1; puts(ss[i]); printf(“\n"); }if (find==__3__) printf("\nDon't found!\n");}main(){ char x[N][M]={"BASIC","C langwage","Java","QBASIC","Access"},str[M];int i;printf("\nThe original string\n\n");for(i=0;i printf("\nEnter a string for search : "); gets(str);fun(x,str);}解题思路:本题是根据给定的字符串数组中查找指定的字符串,如果存在,则显示。

江苏计算机二级C语言上机编程预测7大题

江苏计算机二级C语言上机编程预测7大题
{ t=a[i];p=0;
while(p!=495&&maxmin(t,1)!=maxmin(t,0))
{ p=abs(maxmin(t,1)-maxmin(t,0));
if(p==495) b[k++]=i;
{ b[k++]=t%10; t/=10;}
for(i=0;i<k;i++)
for(j=0;j<k-i-1;j++)
if(judge?b[j]<b[j+1]:b[j]>b[j+1]) {t=b[j];b[j]=b[j+1];b[j+1]=t;}
编写main函数,函数功能:声明一个long int 型数组用于保存查找结果,调用find函数查找1000~1500之间满足上述条件的整数,将查找结果输出到屏幕并保存到文件myf2.out中。最后将考生本人的准考证号字符串也保存到结果文件myf2.out中。
【测试数据与运行结果】
测试数据:n1=1000,n2=1500
}
return s;
}
int primefac( int x)
{ int i,s=0;
int prime(int x)
{ int i;
for(i=2;i<sqrt(x);i++)
if(x%i==0) return 0;
return 1;
}
int fragsum(int x)
{ int s=0;
while(x>0)
{ s+=x%10; x/=10;
【编程要求】

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

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

江苏省计算机二级c语言机考试题及答案一、选择题1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言是一种面向过程的语言C. C语言源于B语言D. C语言是一种解释型语言答案:D. C语言是一种解释型语言2. 在C语言中,可以用于定义宏的命令是:A. #ifB. #defineC. #includeD. #endif答案:B. #define3. 在C语言中,标识符的命名规则中,不允许使用的符号是:A. 下划线(_)B. 感叹号(!)C. 加号(+)D. 美元符号($)答案:B. 感叹号(!)4. C语言中的运算符中,以下优先级最高的是:A. 关系运算符B. 逻辑运算符C. 赋值运算符D. 算术运算符答案:C. 赋值运算符5. 下列程序中,有语法错误的是:A.```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```B.```c#include <stdio.h>int main() {printf("Hello, World!\n") return 0;}```C.```c#include <stdio.h>int main() {printf("Hello, World!\n"); return;}```D.```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;```答案:B.```c#include <stdio.h>int main() {printf("Hello, World!\n")return 0;}```二、填空题1. 下列程序的输出结果是______:```c#include <stdio.h>int main() {int a = 5;printf("%d", a++);printf("%d", ++a);return 0;}```答案:562. 下列程序的输出结果是______:```c#include <stdio.h>int main() {int a = 2;int b = 3;int c = a | b;int d = a & b;printf("%d\n", c);printf("%d\n", d);return 0;}```答案:3, 2三、编程题编写一个程序,输出1~100之间所有能同时被3和5整除的数,并计算这些数的平均值。

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

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

江苏省计算机c语言二级考试试题及答案一、选择题(每题2分,共40分)1. 下列哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. variable-nameD. variable name答案:B2. 在C语言中,以下哪个关键字用于声明函数?A. classB. functionC. voidD. int答案:D3. 若有以下代码片段:```cint a = 3, b = 5;printf("%d", a + b);```输出结果是什么?A. 8B. 35C. 53D. 3+5答案:A4. 在C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C5. 以下哪个选项是C语言中合法的数组声明?A. int array[10];B. int array[];C. int array[10][];D. int array[10][10];答案:A6. C语言中,哪个函数用于输入一个字符?A. scanf()B. getchar()C. printf()D. puts()答案:B7. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. %D. +=答案:A8. 在C语言中,哪个关键字用于声明一个结构体?A. structB. unionD. typedef答案:A9. 若有以下代码片段:```cint x = 10;printf("%d", x++);```输出结果是什么?A. 10B. 11C. 9D. 无法确定答案:A10. 在C语言中,哪个函数用于输出一个字符串?A. scanf()B. printf()C. gets()D. puts()答案:D11. 下列哪个选项是C语言中合法的指针声明?A. int *pointer;B. int pointer[];C. int pointer[10];D. int *pointer[10];答案:A12. 在C语言中,哪个关键字用于声明一个枚举?B. unionC. structD. typedef答案:A13. 若有以下代码片段:```cint a = 10, b = 20;printf("%d", a > b ? a : b);```输出结果是什么?A. 10B. 20C. 30D. 无法确定答案:B14. 在C语言中,哪个函数用于计算两个数的绝对值?A. abs()B. fabs()C. sqrt()D. pow()答案:A15. 下列哪个选项是C语言中合法的函数声明?A. int function();B. void function();C. int function(int x);D. All of the above答案:D16. 在C语言中,哪个关键字用于声明一个联合体?A. unionB. structC. enumD. typedef答案:A17. 若有以下代码片段:```cint a = 10, b = 20;printf("%d", a < b ? a : b);```输出结果是什么?A. 10B. 20C. 30D. 无法确定答案:A18. 在C语言中,哪个函数用于计算两个数的指数?A. pow()B. sqrt()C. fabs()D. abs()答案:A19. 下列哪个选项是C语言中合法的宏定义?A. #define PI 3.14159B. #define PI = 3.14159C. #define PI "3.14159"D. #define PI 3.14159答案:A20. 在C语言中,哪个关键字用于声明一个宏?A. defineB. macroC. constD. typedef答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义一个整型变量的关键字是________。

c语言上机考试试题

c语言上机考试试题

c语言上机考试试题C语言上机考试试题在计算机科学领域中,C语言是一门重要的编程语言,广泛应用于软件开发、系统编程等方面。

作为计算机专业的学生,掌握C语言的基本知识和编程技巧是必不可少的。

为了检验学生对C语言的掌握程度,许多学校和培训机构会安排C语言上机考试。

下面,我们来看一些典型的C语言上机考试试题。

1. 编写一个程序,从键盘输入一个整数n,计算并输出1到n的累加和。

这道题考察了学生对循环结构的理解和运用。

学生需要使用循环语句(如for、while等)来实现累加的功能,并且注意输入的合法性。

2. 编写一个程序,从键盘输入一个字符串,统计并输出其中的字母、数字和其他字符的个数。

这道题考察了学生对字符串处理的能力。

学生需要使用字符数组和循环语句来逐个判断输入字符串中的字符,并根据字符的类型进行计数。

3. 编写一个程序,从键盘输入一个正整数n,判断并输出n是否为素数。

这道题考察了学生对素数判断的理解和实现。

学生需要使用循环语句和条件判断语句来判断n是否能被2到sqrt(n)之间的任意整数整除。

4. 编写一个程序,从键盘输入一个正整数n,计算并输出n的阶乘。

这道题考察了学生对递归的理解和应用。

学生可以使用递归函数来实现阶乘的计算,也可以使用循环语句来实现。

5. 编写一个程序,从键盘输入一个字符串,将其中的大写字母转换为小写字母,并输出转换后的字符串。

这道题考察了学生对字符处理的能力。

学生需要使用字符数组和循环语句来逐个判断输入字符串中的字符,并根据字符的ASCII码进行转换。

6. 编写一个程序,从键盘输入一个字符串,判断并输出该字符串是否为回文字符串。

这道题考察了学生对字符串处理和回文判断的能力。

学生需要使用字符数组和循环语句来逐个比较输入字符串中的字符,并判断是否为回文字符串。

通过上述的典型试题,我们可以看到C语言上机考试主要考察学生对基本语法、流程控制、数组和字符串处理等方面的掌握程度。

在解答这些试题时,学生需要注重代码的逻辑性、清晰性和效率性,避免出现死循环、数组越界等常见错误。

江苏省计算机等级考试上机材料(C语言)

江苏省计算机等级考试上机材料(C语言)

上机考试考点总结注意事项:上机试题改错18分+编程22分 70分钟(占总成绩的40%)一、改错题设错类型:语法错误,语义错误,算法错误江苏省C语言改错题目有四个错误点。

其中两个语法错误,两个逻辑错误。

启动Turboc2.0,按F10,选中File->new,首先按照试卷上的格式将改错题目录入到turbo c中,按F10,然后选中compile->compile to obj,如果有Error那么说明有错误,要看错误点是自己输入错误还是本身试题语法的问题。

另外不要把时间浪费到改错题目中,如果改几处语法错误后。

要转移到编程题目中,首先写出c编程题目中的大框架。

c语言改错题目一定要理解题意,把题目中给的参数直接带到程序中去试验一下,题目中给的参数一定要带到函数中,去看每个for或while循环的含义。

二、编程题题目类型:以实用性为主我们学习的根本是要操纵计算机,让他给我们做事情。

计算机就是一台机器,我们必须按照他理解的方式操纵他。

我们实际上学习的就是一个C语言用户手册。

在上机中,编写的程序要具有通用性。

编写好框架后首先要保存下来。

要多读好程序用计算机解决一个具体问题:首先要从具体问题抽象出一个数学模型,然后设计一个解此数学模型的算法,最后编写程序、进行测试、调整直到最终解答。

寻找数学模型的实质是分析问题,从中提取操作的对象,并找出这些对象之间含有的关系,然后用数学的语言加以描述。

从熟悉基本语法到熟练操作需要有一个时间过程。

第一步熟悉常用的语法与函数。

第二步做典型题目来强化与理解。

c语言编程题目首先要搭大的框架,要不断调试。

通过题目看本质(1)程序可读性:主要是为了人的阅读与交流,其次才是计算机的执行,可读性好有助于人对算法的理解,晦涩难懂的程序易于隐藏较多错误难以调试和修改。

上机操作改错题目要严格按照题目格式输入,编程题目要首先把main()函数写出来,然后想出一个解决问题的算法。

千万别写垃圾代码,要象写诗一样优美。

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

江苏省计算机二级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到最后的字符串移到字符串的前部。

江苏省计算机c语言等级考试试题及答案

江苏省计算机c语言等级考试试题及答案

江苏省计算机c语言等级考试试题及答案一、选择题(每题2分,共40分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中的合法标识符?A. _123B. mainC. 2variableD. int答案:C3. C语言中,用于声明一个整型数组的语句是:A. int a[10];B. int [10] a;C. int a[];D. int a=10;答案:A4. C语言中,以下哪个函数用于计算字符串的长度?A. strlen()C. strcat()D. strcmp()答案:A5. 在C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B6. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. <=D. %答案:A7. 在C语言中,以下哪个关键字用于定义一个函数?A. structB. unionC. enumD. void答案:D8. C语言中,以下哪个函数用于将字符串复制到另一个字符串?B. strcat()C. strcmp()D. strlen()答案:A9. 在C语言中,以下哪个关键字用于声明一个变量为静态存储类别?A. staticB. externC. autoD. register答案:A10. C语言中,以下哪个关键字用于定义一个枚举类型?A. structB. unionC. enumD. typedef答案:C二、填空题(每题2分,共20分)1. 在C语言中,声明一个字符型变量的语句是___________。

答案:char c;2. C语言中,用于输入输出的库函数是___________。

答案:stdio.h3. 在C语言中,用于定义一个指针变量的语句是___________。

答案:int *p;4. C语言中,用于定义一个二维数组的语句是___________。

计算机等级考试C语言上机模拟试题

计算机等级考试C语言上机模拟试题

计算机等级考试C语言上机模拟试题1、函数adddigit的原型为int adddigit(int num);,其功能是求num各位数字之和。

要求编制该函数并用如下所示的主函数进行测试,源程序存入test1.c。

# include “stdio.h”# include “math.h”void main(){ int adddigit(int num);——该语句是函数的申明。

可以省略int n;scanf(“%d”,&n);printf(“sum=%d\n”,adddigit(n));}2、编制程序输出如下所示图形,源程序存入test11.c。

1121123211234321123454321123456543213、编制程序实现功能:从键盘上输入若干个值为0~32767之间的正整数,并将每个整数的各位数字之和存放在数组a中。

要求:被处理数据的个数由键盘输入指定(小于50个数):求每个整数各位数字之和的功能用自定义函数实现:源程序存入test21.c。

4、编制程序实现其6Ⅹ6的整型矩阵的输入数据,然后求出其最大元素以及最大元素位置的下标并输出的功能,源程序存入test41.c。

5、编程实现从键盘为一个6Ⅹ6整型数组输入数据,然后找出其每一行中的最小值保存在一维数组中,并输出该一维数组的所有元素。

源程序存入test51.c。

6、函数fac的原型为long fac(it j);,其功能是利用静态变量实现n!。

要求编制该函数并用如下的主函数进行测试。

源程序存入test61.c。

7、函数chrn的原型为int chrn(char *s,char c);,其功能是测试字符c在字符串s中出现的次数。

要求编制该函数并用相应的主函数进行测试。

源程序存入test71.c。

8、求出100~999之间能够被3整除,且至少有一位数字是5的所有整数。

源程序存入test81.c。

9、编写一个程序计算下式之和。

1+(1+2)+(1+2+3)+……+(1+2+3+4+5+6+7+8+9+10). 源程序存入test91.c。

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

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

江苏省计算机二级考试c语言真题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. $variableD. variable-2答案:B2. 下列关于C语言中整型变量的描述,哪个是错误的?A. 整型变量可以存储整数B. 整型变量可以存储小数C. 整型变量可以存储字符D. 整型变量可以存储布尔值答案:B3. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. char str[] = 'Hello';C. char str[] = {"Hello"};D. char str[] = "Hello", "World";答案:A4. 下列哪个选项不是C语言中的控制结构?A. 顺序结构B. 选择结构C. 循环结构D. 递归结构答案:D5. 在C语言中,以下哪个关键字用于定义函数?A. classB. functionC. voidD. int答案:C6. 在C语言中,以下哪个选项是正确的二维数组定义方式?A. int array[3][4];B. int array[][] = {1, 2, 3};C. int array[3] = {1, 2, 3};D. int array[3][4] = {1, 2};答案:A7. 在C语言中,以下哪个选项是正确的结构体定义方式?A. struct Student {int id;char name[20];};B. struct Student {int id;char name;};C. struct Student {int id;string name;};D. struct Student {int id;char name[20];float score;};答案:D8. 在C语言中,以下哪个选项是正确的指针定义方式?A. int *p;B. int *p = 0;C. int *p = "Hello";D. int p = 0;答案:A9. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopen()B. fclose()C. fgetc()D. All of the above答案:D10. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14159B. #define PI 3.14159C. #define PI 3.14159D. All of the above答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个全局变量。

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

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

江苏省等级考试(2级C)上机模拟题模拟题一一、改错题(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到最后的字符串移到字符串的前部。

2023年江苏省徐州市全国计算机等级考试C语言程序设计模拟考试(含答案)

2023年江苏省徐州市全国计算机等级考试C语言程序设计模拟考试(含答案)

2023年江苏省徐州市全国计算机等级考试C语言程序设计模拟考试(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、2.填空题(10题)1. 下列程序的功能是将字符串s中所有的字符c删除。

请填空。

#include<stdio.h>main(){ char s[80];int i,j;gets(s);for(i=j=0;s[i]!='\0';i++)if(s[i]!='c')s[j]='\0';puts(s);}2. 在链表的运算过程中,能够使空表与非空表的运算统一的结构是______。

3. 以下程序的输出结果是【】。

#include<stdlib.h>main(){ char *s1,*s2,m;s1=s2=(char*)malloc(sizeof(char));*s1=15;*s2=20;m=*s1+*s2;printf("%d\n",m);}4. 一棵二叉树第六层(根结点为第一层)的结点数最多为______个。

5. 若x和a均是int型变量,则计算完x=(a=4,6*2)后的x值为______。

6. 下列程序段的运行结果是______。

char str[]="ABCD",*p=str;printf("%d\n",*(p+3));7. 下面程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是【】。

main(){ int a[10]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf("%x\n",p);printf("%x\",p+9);}8. 以下程序的作用是:从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。

2021-2022学年江苏省徐州市全国计算机等级考试C语言程序设计模拟考试(含答案)

2021-2022学年江苏省徐州市全国计算机等级考试C语言程序设计模拟考试(含答案)

2021-2022学年江苏省徐州市全国计算机等级考试C语言程序设计模拟考试(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1.设有6个结点的无向图,该图至少应有()条边才能确保是一个连通图。

A.7B.5C.8D.62.3.4.下列定义数组的语句中正确的是()。

A.#defme N 10int x[ N];B.int N=10;int x[N];C.int x[0..10];D.int x[ ];5.6.以下有关宏替换的叙述不正确的是()。

A.A.使用宏定义可以嵌套B.宏定义语句不进行语法检查C.双引号中出现的宏名不替换D.宏名必须用大写字母表示7. fgetc函数的作用是从指定文件读入—个字符,该文件的打开方式必须是______。

A.只读B.追加C.读或读写D.以上均正确8. 在数据流图(DFD)中,带有名字的箭头表示A.模块之间的调用关系B.程序的组成成分C.控制程序的执行顺序D.数据的流向9.有以下程序main(){union{char ch[2];int d;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位编译系统上,程序执行后的输出结果是______。

A.21,43B.43,21C.43,00D.21,0010.有以下程序:#include <stdio.h>main(){FILE *f;f=fopen(“fllea. txt”, “w”);fprintf( f,“ abc”);fclose(f);}若文本文件filea. txt中原有内容为hello,则运行以上程序后,文件filea. txt中的内容为()。

A.abcloB.abcC.helloabcD.abchello11.数组A中,每个元素的长度为4个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A[8][5]的起始地址为()。

江苏省计算机c 试题及答案

江苏省计算机c 试题及答案

江苏省计算机c 试题及答案江苏省计算机C试题及答案一、选择题1. 下列选项中,属于C语言关键字的是:A. printfB. forC. beginD. include答案:B2. 下列选项中,不属于C语言数据类型的是:A. intB. floatC. charD. string答案:D3. 下面哪个运算符具有最高优先级?A. +B. *C. =D. /答案:B4. 下面关于数组的说法,正确的是:A. 数组可以存储不同类型的数据B. 数组的大小可以在程序运行时改变C. 数组元素的索引从1开始计数D. 数组可以通过指针进行访问答案:D5. 下列代码的输出结果是什么?```cint x = 5;printf("%d", ++x);```A. 4B. 5C. 6D. 运行时错误答案:C二、填空题1. C语言中,用于声明一个整型变量的关键字是`______`。

答案:int2. 下面的循环语句中,需要填写的是`______`。

```cfor (______; i < 10; i++) {printf("%d ", i);}```答案:int i = 03. 下面的代码中,需要填写的是`______`。

```cint numbers[] = {1, 2, 3, 4, 5};printf("%d", numbers[______]);```答案:2三、编程题请编写一个C语言程序,实现以下功能:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入第一个整数:");scanf("%d", &num1);printf("请输入第二个整数:");scanf("%d", &num2);sum = num1 + num2;printf("两个整数的和为:%d", sum);return 0;}```四、问答题1. 请简要解释C语言的指针的概念和作用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

江苏省等级考试(2级C)上机模拟题模拟题一一、改错题(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到最后的字符串移到字符串的前部。

例如:字符串中原有的内容为:ABCDEFGHIJK,m的值为3,则移动后,字符串中的内容应该是:DEFGHIJKABC。

2.编写main函数,在main函数中初始化一个字符串,调用函数fun,将结果字符串及函数返回值写入到文件myf2.out中。

【要求】1.源程序文件名必须取为myf2.c,输出结果文件名为myf2.out。

2.数据文件的打开、使用、关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。

3.源程序文件和运行结果文件均需要保存在考试软盘的根目录中供阅卷使用。

4.不要复制扩展名为obj和exe的文件到考试软盘上。

模拟题二一、改错题(18分)【题目】函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。

例如,在调用fun函数之前给a输入字符串:ABCDEFGHIJK,调用函数之后,字符数组b中的内容则为:ABC DEF GHI JK。

含有错误的程序如下:#include <stdio.h>void fun(char *p, char *b){ int i, k=0;while(*p){ i=1;while( i<3 && *p ){b[k]=p;k++; p++; i++;}if(*p){b[k++]=" ";}}b[k]= ''\0'';}main(){ char a[80],b[80];printf("Enter a string: "); gets(a);printf("The original string: "); puts(a);fun(a,b);printf("\nThe string after insert space: ");puts(b); printf("\n\n");}【要求】1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。

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

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

二、编程题(22分)【题目】1.编写main函数,将N名学生的成绩在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。

并调用函数fun,将结果及函数返回值写入到文件myf2.out中。

2.请编写函数fun,它的功能是:求出这N个学生的平均分,由函数值返回。

例如,若学生的成绩是:85,76,69,85,91,72,64,87,则平均分应当是:78.625。

【要求】1.源程序文件名必须取为myf2.c,输出结果文件名为myf2.out。

2.数据文件的打开、使用、关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。

3.源程序文件和运行结果文件均需要保存在考试软盘的根目录中供阅卷使用。

4.不要复制扩展名为obj和exe的文件到考试软盘上。

模拟题三一、改错题(18分)【题目】N个有序整数列已放在一维数组中,下列给定程序中函数fun的功能是:利用折半查找算法查找整数m在数组中的位置。

若找到,则返回其下标值,反之,则返回-1。

提示:折半查找的基本算法是:每次查找前先确定数组中待查的范围,low和high,然后把m与中间位置(mid)中元素的值进行比较,如果m的值大于中间位置元素中的值,则下一次的查找范围放在中间位置之后的元素中,反之,下一次的查找范围落在中间位置之前的元素中。

直到low<high,查找结束。

含有错误的程序如下:#include <stdio.h>#define N 10void fun (int a[ ], int m){ int low=0, high=N-1, mid;while (low<=high){ mid=(low+high)/2;if(m<=a[mid])high=mid-1;else if (m>=a[mid])low=mid+1;return (mid);}return (-1);}main (){ int i, a[N]={-3,4,7,9,13,45,67,89,100,180}, k, m;printf (“a数组中的数据如下:”);for (i=0; i<N; i++) printf (“%d”, a[i]);printf (“Enter m: “); scanf(“%d”,&m);k=fun (a, m)if (k>=0) printf(“m=%d,index=%d\n”, m,k);else printf (“Not be found!\n”);}【要求】1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。

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

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

二、编程题(22分)【题目】1.编写函数fun,它的功能是:将3行4列矩阵x乘以4行3列矩阵y,结果放在3行3列矩阵xy中。

矩阵相乘的基本方法是:矩阵xy中行列下标分别为i,j的元素的值,是矩阵x中第i行上4个元素与矩阵y中第j列上4个元素对应相乘的和。

例如:矩阵x为321112111,矩阵y为311112111,则矩阵xy为1044533534。

2.编写main函数,初始化两个数组,调用函数fun,将结果矩阵及函数返回值写入到文件myf2.out 中。

【要求】1.源程序文件名必须取为myf2.c,输出结果文件名为myf2.out。

2.数据文件的打开、使用、关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。

3.源程序文件和运行结果文件均需要保存在考试软盘的根目录中供阅卷使用。

4.不要复制扩展名为obj和exe的文件到考试软盘上。

模拟题四一、改错题(18分)【题目】函数fun的功能是:将m(1≤m≤10)个字符连接起来,组成一个新串,放入pt所指字符串中。

例如:把3个串:“abc”,“CD”,“EF”串连起来,结果是“abcCDEF”。

含有错误的程序如下:#include <conio.h>#include <stdio.h>#include <string.h>int fun(char str[][],int m, *pt){int k,q,i;for(k=0;k<m;k++){ q=strlen(str[k]);for(i=0;i<q;i++)pt[i]=str[k,i];pt+=q;pt[0]=0;}}main( ){ int m,h;char s[10][10],p[120];clrscr( );printf("\nPlease enter m:");scanf("%d",&m); gets(s);printf("\nPlease enter %d string:\n",m);for(h=0;h<m;h++) gets(s[h]);fun(s,p,m);printf("\nThe result is :%s\n",p);NONO( ); /*本函数与考生答题无关,考生不得改动,否则后果自负。

*/}【要求】1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。

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

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

二、编程题(22分)【题目】1.编写一个函数void fun (int array[ ], int n),将array数组中的前n个整数按从大到小的顺序排序。

2.编写主函数main,从键盘上输入一个正整数,求出该位是几位数,按从左到右的顺序显示各位数字,用这些数字组成一个最小正整数(调用fun函数),将以上三项结果写入到文件myf2.out中。

【要求】1.源程序文件名必须取为myf2.c,输出结果文件名为myf2.out。

2.数据文件的打开、使用、关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。

相关文档
最新文档