四川省计算机等级考试二级C语言机试题22

合集下载

四川省计算机二级c语言考试试题及答案及解析

四川省计算机二级c语言考试试题及答案及解析

四川省计算机二级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语言中,用于定义一个数组的关键字是()。

2022-2023学年四川省资阳市全国计算机等级考试C语言程序设计真题二卷(含答案)

2022-2023学年四川省资阳市全国计算机等级考试C语言程序设计真题二卷(含答案)

2022-2023学年四川省资阳市全国计算机等级考试C语言程序设计真题二卷(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1.有以下程序:#include<stdio.h>int fun(int X,int y){if(X!=y)return((x+y)/2);else return(x);}main(){int a=4,b=5,c=6;printf("%d/n",fun(2*a,fun(b,c)));}程序运行后的输入结果是()。

A.3 B.6 C.8 D.122.一个C语言程序总是从()开始执行:A.主程序B.子程序C.主函数D.第一个函数3.在一个源文件中定义的全局变量的作用域为:()A.本程序的全部范围B.本函数的全部范围C.从定义该变量的位置开始到本文件结束D.以上说法都不正确4.给定数列(541,132,984,746,518,181,946,314,205,827)按照从小到大的顺序排列,采用直接选择大值开始排序时,第一趟扫描结果是()A.(541,132,827,746,518,181,946,314,205,984)B.(205,132,314,181,518,746,946,984,541,827)C.(132,541,746,984,181,518,314,946,205,827)D.(132,541,746,518,181,946,314,205,827,984)5. 运行下列程序,若从键盘输入字符“a”,则输出结果是( )。

char c;c=getchar;if(c>=a&&c<=g)c=c+4:else if(c>=9&&c<=2)c=c-21:else printf("input error! \n");putchar(c);A. fB.tC.eD.d6.设有如下定义和语句:FILE *fp;int data[10],i,n;fp=fopen(“abc. txt”, “r”);文本文件abc. txt中的数据为5 81 92 76 51 90,其中第1个数据代表的是它后面数据的个数。

2022c语言二级考试题及答案

2022c语言二级考试题及答案

2022c语言二级考试题及答案一、单项选择题(每小题2分,共40分)1. C语言中,用于定义变量类型为整型的关键字是()。

A. intB. floatC. doubleD. char答案:A2. 下列选项中,不是C语言标准库函数的是()。

A. printf()B. scanf()C. strcat()D. input()答案:D3. 若有以下定义和语句:```cint a=5, b=2;a=a+b;```则执行后变量a的值是()。

A. 5B. 7C. 2D. 0答案:B4. 在C语言中,以下哪个选项是正确的字符串常量?A. "123"B. '123'C. "123""D. 123答案:A5. C语言中,以下哪个选项是正确的二维数组定义?A. int a[2,3];B. int a[2][3];C. int a[2][3][];D. int a[][];答案:B6. 在C语言中,以下哪个选项是正确的函数定义?A. int fun(int a, int b);B. int fun();C. int fun(int a, int b) {}D. int fun(a, b) {}答案:C7. 下列哪个选项是C语言中的合法标识符?A. 2aB. a-bC. _a1D. int答案:C8. 若有以下定义和语句:```cint a=5, b=0;if (a=b)printf("%d", b);elseprintf("%d", a);```则执行后输出的结果是()。

A. 5B. 0C. 1D. 无输出答案:B9. C语言中,以下哪个选项是正确的文件操作函数?A. fopen()B. fclose()C. fgetc()D. All of the above答案:D10. 在C语言中,以下哪个选项是正确的结构体定义?A. struct student {int age;float score;};B. struct {int age;float score;} student;C. Both A and BD. None of the above答案:C11. C语言中,以下哪个选项是正确的枚举类型定义?A. enum color {red, green, blue};B. enum {red, green, blue};C. Both A and BD. None of the above答案:C12. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14B. #define PI = 3.14C. #define PI 3.14D. #define PI = 3.14答案:A13. C语言中,以下哪个选项是正确的指针定义?A. int *p;B. int *p[];C. int (*p)[];D. int *p[10];答案:A14. 若有以下定义和语句:```cint a=10;printf("%d", ++a);```则执行后输出的结果是()。

2022-2023学年四川省自贡市全国计算机等级考试C语言程序设计真题(含答案)

2022-2023学年四川省自贡市全国计算机等级考试C语言程序设计真题(含答案)

2022-2023学年四川省自贡市全国计算机等级考试C语言程序设计真题(含答案)学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1.下列关于栈叙述正确的是A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.上述三种说法都不对2. 下列程序的输出结果是( )。

main() { char a[7]="a0\0a0\0";int i,j;i=sizeof(a);j=strlen(a);printf("%d %d\n",i,j);}A.2 2B.7 6C.7 2D.6 23.下列叙述中正确的是()。

A.在switch语句中不一定使用break语句B.在switch语句中必须使用default语句C.break语句必须与switch语句中的case配对使用D.break语句只能用于switch语句4.有以下程序:#include <stdio.h>main(){ int a=2,b;b=a<<2;printf("%d\n",b);}程序运行后的输出结果是()。

A.2 B.4 C.6 D.8 5.有下列程序:程序执行后的输出结果是()。

A.Sun,f,90,Sun,f,90B.Zhao,m,85 ,Sun,f,90C.Zhao,m,85 ,Qian,f,95D.Sun,f,90,Qian,f,956.7.若有定义“float a=25,b,*p=&b;”,则下列对赋值语句“*p=a;”和“p=&a;”的正确解释为( )。

A.两个语句都是将变量a的值赋予变量PB.*p=a是使P指向变量a,而p=&a是将变量的值赋予变量指针PC.*p=a是将变量a的值赋予变量b,而&a是使P指向变量aD.两个语句都是使P指向变量a8.下列排序算法中,其时间复杂度和记录的初始排列无关的是()A.插入排序B.堆排序C.快速排序D.冒泡排序9.10.下列程序的输出结果是( )。

2022-2023学年四川省眉山市全国计算机等级考试C语言程序设计真题(含答案)

2022-2023学年四川省眉山市全国计算机等级考试C语言程序设计真题(含答案)

2022-2023学年四川省眉山市全国计算机等级考试C语言程序设计真题(含答案)学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1.2.设有如下定义和语句:FILE *fp;int data[10],i,n;fp=fopen(“abc. txt”, “r”);文本文件abc. txt中的数据为5 81 92 76 51 90,其中第1个数据代表的是它后面数据的个数。

若文件已正确打开,则以下程序段中能将文件的最后5个数据依次正确读入数组data[0]~data[4]中的是()。

A.fscanf(fp, “%d”,&n);for(i=0;i<n;i++)fscanf(fp, “%d”, &data[i]);B.i=0;while( ! feof(fp)){fscanf(fp, “%d”, &data[i]);i++;}C.for(i=0;! feof(fp);i++)fscanf( fp, “%d”, &data[i]);D.i=0;fscanf( fp, “%d”, &n);i ++ ;while( ! feof(fp)){fscanf( fp, “%d”, &data[i]);i ++ ;}3.p指向线性链表中某一结点,则在线性链表的表尾插入结点s的语句序列是()。

A.while(p->next!=NULL)p=p->next;p->next=s;s->next=NULL;B.while(p!=NULL)p=p->next;p->next=s;s->next=NULL;C.while(p->next!=NULL)p=p->next;s->next=p;p->next=NULL;D.while(p!=NULL)p=p->next->next;p->next=s;s->next=p->next;4.和顺序栈相比,链栈有一个比较明显的优势是()。

四川省计算机等级考试二级C语言机试题50道真题

四川省计算机等级考试二级C语言机试题50道真题

四川省计算机等级考试二级C语言机试题50道(1)Date: 2010-01-29 Comments: 0 Views: 1041)下面叙述正确的是________。

A)算法的执行效率与数据的存储结构无关B)算法的空间复杂度是指算法程序中指令(或语句)的条数C)算法的有穷性是指算法必须能在执行有限个步骤之后终止D)算法的时间复杂度是指执行算法程序所需要的时间(1)C知识点:算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)评析:算法的设计可以避开具体的计算机程序设计语言,但算法的实现必须借助程序设计语言中提供的数据类型及其算法。

数据结构和算法是计算机科学的两个重要支柱。

它们是一个不可分割的整体。

算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度。

算法的有穷性是指一个算法必须在执行有限的步骤以后结束。

算法的时间复杂度是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算次数。

(2)以下数据结构属于非线性数据结构的是________。

A)队列B)线性表C)二叉树D)栈(2)C知识点:栈和队列的定义;栈和队列的顺序存储结构及其基本运算评析:线性表、栈和队列等数据结构所表达和处理的数据以线性结构为组织形式。

栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。

一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。

所以栈又称后进先出表(Last In First Out)。

队列可看作是插入在一端进行,删除在另一端进行的线性表,允许插入的一端称为队尾,允许删除的一端称为队头。

在队列中,只能删除队头元素,队列的最后一个元素一定是最新入队的元素。

因此队列又称先进先出表(First In First Out)。

二叉树的数据结构是树型结构,结构中数据元素之间存在着一对多的关系,因此它是一种非线性数据结构。

2022年四川省绵阳市全国计算机等级考试C语言程序设计测试卷(含答案)

2022年四川省绵阳市全国计算机等级考试C语言程序设计测试卷(含答案)

2022年四川省绵阳市全国计算机等级考试C语言程序设计测试卷(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、2.填空题(10题)1. 在面向对象的方法中,______描述的是具有相似属性与操作的一组对象。

2. 设函数findbig已定义为求3个数中的最大值。

以下程序将利用函数指针调用findbig函数。

请填空。

main(){ int findbig(int,int,int);int (*f) () ,x,y, z,big;f=______;scanf("%d%d%d",&x,&y,&z}:big=(*f)(x,y,Z);printf("big=%d\n",big);}3. 无论对于顺序存储,还是链接存储的栈和队列来说,进行插入或删除运算的时间复杂性均相同,则为【】。

4. 下列程序输出的结果是【】。

fun(int x){ static int a=3;a+=x;return(a);main(){ int k=2,m=1,n;n=fun(k);n=fun(m);printf("%d\n",n);}5. 存储300个16×16点阵的汉字信息需要【】字节。

6. 一般来说,算法可以用顺序、选择和______三种基本控制结构组合而成。

7. 二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是______。

8. 下列程序的输出结果是______。

#include<stdio.h>int fun(int x){ int p;if(x==0‖x==1)return 3;elsep=x-fun(x-2);return p;}void main(){ printf("\n%d",fun(11));}9. 设x、y、z均为int型变量,请写出描述"x或y中至少有一个小于z"的表达式______。

四川计算机二级c语言考试21次机试试真题

四川计算机二级c语言考试21次机试试真题

一、程序调试题(文件名test1-1.c)(40分)磁盘上有一个名为test1-1.c的C程序文件,其功能是将字符串中的小写字母都改成对应的大写字母,其他字母不变。

请更改程序中的错误。

注意:不得增行或删行,也不得更改程序的结构。

#include <stdio.h>#include <string.h>char *fun( char str){ int i ;for(i=0 ; str; i++)if(('a'<=str[i])||(str[i]<='z'))str[i]+=32;return *str;}main(){char str[81];printf("\n Please enter a string:");gets(str[81]);printf("\n The result string is:\n%s" , fun(str));}二、编写程序(程序文件名取为test1-2.c)(60分)在磁盘上的test1-2.txt文件中放有10个不小于2的正整数,用函数调用方式编写程序。

要求实现:1. 在被调函数prime中,判断和统计10个整数中的素数以及个数。

2. 在主函数中将全部素数追加到磁盘文件test1-2.txt的尾部,同时输出到屏幕上。

一、程序调试题(文件名test2-l.c)(40分)N个有序数数列已放在一维数组中。

下列程序中,函数fi的功能是:利用折半查找算法查找整数m在数组中的位置,返回其下标值;反之返回-1。

折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(Iow<high),然后把m与中间位置(mid)中元素的值进行比较。

如果m的值大于中间位置元素中的值,则下次的查找范围放在中间位置之后的元素中;反之,下一次的查找范围在中间位置之前的元素中。

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

四川省计算机等级考试二级C语言机试题(第二十二次)2009-03-29 16:37:54(第一套)(60分钟)一、程序调试题(文件名testl-l.c)(40分)软盘上有一个名为testl-l.c的C程序文件,其中函数move的功能是将字符串str 中的字符"循环左移" r位。

例如,输入"HELLO",r=2,则应该输出"LLOHE"。

注意:不得增行或删行,也不得更改程序的结构。

#include <stdio.h>#include <string.h>char move( char *str, int r){ char t;int i,len;len=strlen(str);for(k=0;k<=r;k++){ t=*str;strcpy(str+1,str);str[len-1]=t;}return *str;}void main(){ char s[81];int m;printf("\n Please enter a string:\n");gets(s);do{ printf("\n Please enter m:");scanf("%d",m);if(m>strlen(s))printf("\n Data error!!\n");}while(m>strlen(s));printf("\n Result:%s\n",move(s,m));}二、编写程序(程序文件名取为testl-2.c)(60分)编写一个程序,从文件testl-2.in中读出一行字符(即一个字符串,长度在128个字符内),将排列在奇数位上的字符取出,按从小到大的顺序排列并输出到屏幕上。

要求:(1) 在main函数中实现从文件testl-2.in中读出一行字符,调用sort函数排序,然后将结果输出到屏幕上。

(2)编写sort函数,实现将排列在奇数位上的字符取出,然后按从小到大的顺序排列。

例如,hqwbodze奇数位为q、b、d、e,排序后为bdeq。

(第二套)(60分钟)一、程序调试题(文件名为test2-l.c)(40分)程序的功能是找出数组a中每行的最小值并输出。

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

注意:不得增行或删行,也不得更改程序的结构。

#include <stdio.h>main(){float a[ ][10], min;int i, j;int invert();for(i=0;i<10;i++)for(j=0;j<10;j++)a[i][j]= i+j;for(i=0;i<10;i++){min=invert(a,10);printf("a[%d]min=%f\n",i,min);}}float invert(float *a, n){int i;float min;min=*(a+0);for(i=1;i<n;i++){if(min<*(a+i))min=(a+i);}return min;}二、编写程序(程序文件名取为test2-2.c)(60分)请编写函数select判断一个数能否被3和5整除,main函数中调用select函数,求出所有小于400、能被3和5整除的数(例如15,30等),然后将求得的数以每行5个数,每个数占10列方式输出到屏幕上和存放到文件test2-2.dat中。

(第三套)(60分钟)一、程序调试题(文件名为test3-1.c) (40分)函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数返回,平均分存放在形参aver所指的存储单元中。

例如,若8名学生的成绩为:80.5 60 72 90.5 98 51.5 88 64,则低于平均分的学生人数为4(平均分为75.5625)。

请改正程序中的错误,便它能计算出正确的结果。

洼意:不得增行或删行,也不得更改程序的结构。

#include <stdio.h>int fun(float s, int n, float *aver){ float ave,t=0.0;int count,k,i;for(k=0;k<n;k++)t=s[k];ave=t/n;for(i=0;i<n;i++)if(s[i]>ave) count++;*aver=&ave;return count;}main(){ float s[30],aver;int m, i;printf("\nPlease enter n(<30):");scanf("%d", &m);printf("\nPlease enter %d mark:\n",m);for(i=0;i<m;i++)scanf("%f", s+i);printf("\nThe number of students:%d \n",fun(s, m, aver)); printf("Ave=%f \n", aver);}二、编写程序(程序文件名取为test3-2.c) (60分)编写函数fun和input:(1) 函数fun对整数数组s中除首、尾数据外的其余M-2个数据按升序排列。

例如,若原来的数据为9876543,则排序后输出为9456783。

(2) 函数input从文件test3-2.in中读出待排序的数据。

编写main函数,调用input函数和fun函数,将排序的结果输出到屏幕上四川省计算机等级考试二级C语言机试题(第二十二次)答案2009-03-29 16:38:2122-1套参考答案:一、程序调试题(文件名为test1-1.c)(40分)#include <stdio.h>#include <string.h>char move( char *str, int r) /* 改为*move */{ char t;int i,len; /* 改为k*/len=strlen(str);for(k=0;k<=r;k++) /* 改为k<r */{ t=*str;strcpy(str+1,str);/* 改为strcpy(str+1,str) */str[len-1]=t;}return *str; /* 改为str */}void main(){ char s[81];int m;printf("\n Please enter a string:\n");gets(s);do{ printf("\n Please enter m:");scanf("%d",m); /* 改为&m */if(m>strlen(s))printf("\n Data error!!\n");}while(m>strlen(s));printf("\n Result:%s\n",move(s,m));}评分标准:每改对1处得5分,结果正确得10分。

二、编写程序(程序文件取名为test1-2.c)(60分)评分标准:1.被调函数编写正确25分2.文件打开、数据读出正确10分3.函数调用正确10分4.屏幕输出正确10分5.程序结构合理5分参考程序:#include <stdio.h>sort(char a[],char b[]){char c;int i,j=0;for(i=1;i<strlen(a);i+=2)b[j++]=a[i];b[j]='\0';for(i=1;i<strlen(b);i++)for(j=0;j<strlen(b)-i;j++)if(b[j]>b[j+1]){ c=b[j]; b[j]=b[j+1]; b[j+1]=c; }}main(){FILE *in;char a[128],b[65];in=fopen("test1-2.in","r");fgets(a,128,in);fclose(in);sort(a,b);puts(b);}22-2套参考答案:一、程序调试题(文件名为test2-1.c)(40分)#include <stdio.h>main()float a[ ][10], min; /* 改为a[10][10]*/ int i, j;int invert(); /* 改为float*/for(i=0;i<10;i++)for(j=0;j<10;j++)a[i][j]= i+j;for(i=0;i<10;i++){min=invert(a,10); /* 改为a[i] */printf("a[%d]min=%f\n",i,min);}}float invert(float *a, n) /* 改为int n */ {int i;float min;min=*(a+0);for(i=1;i<n;i++){if(min<*(a+i)) /* 改为>*/min=(a+i); /* 改为*(a+i) */}return min;评分标准:每改对1处得5分,结果正确得10分。

二、编写程序(程序文件取名为test2-2.c)(60分)评分标准:1.被调函数编写正确15分2.文件打开、数据写入正确15分3.函数调用正确10分4.屏幕输出正确10分5.程序结构合理10分参考程序:# include <stdio.h>int select(int a){if(!(a%3)&&!(a%5)) return 1;else return 0;}main(){int i,k=0;FILE *fp;if((fp=fopen("test2-2.dat","wb"))==NULL){printf("cannot open the file\n");}for(i=3;i<400;i++)if(select(i)){k=k+1;printf("%10d",i);fprintf(fp,"%10d",i);if(k%5==0){ printf("\n");fprintf(fp,"\n");}}fclose(fp);}22-3套参考答案:一、程序调试题(文件名为test3-1.c)(40分)#include <stdio.h>int fun(float s, int n, float *aver) /* 改为*s */ { float ave,t=0.0;int count,k,i; /* 改为count=0 */for(k=0;k<n;k++)t=s[k]; /* 改为+= */for(i=0;i<n;i++)if(s[i]>ave) count++; /* 改为<*/*aver=&ave; /* 改为ave */return count;}main(){ float s[30],aver;int m, i;printf("\nPlease enter n(<30):");scanf("%d", &m);printf("\nPlease enter %d mark:\n",m);for(i=0;i<m;i++)scanf("%f", s+i);printf("\nThe number of students:%d \n",fun(s, m, aver)); /* 改为&aver */ printf("Ave=%f \n", aver);}评分标准:每改对1处得5分,结果正确得10分。

相关文档
最新文档