c语言试卷第四套

合集下载

2024年6月青少年软件编程C语言等级考试试卷四级真题

2024年6月青少年软件编程C语言等级考试试卷四级真题

2024年6月青少年软件编程C语言等级考试试卷四级真题分数:100 题数:41.人以群分(25分)。

社交网络中我们给每个人定义了一个“活跃度”,现希望根据这个指标把人群分为两大类,即外向型(outgoing,即活跃度高的)和内向型(introverted,即活跃度低的)。

要求两类人群的规模尽可能接近,而他们的总活跃度差距尽可能拉开。

输入:第一行给出一个正整数N(2≤N≤105)。

随后一行给出N个正整数,分别是每个人的活跃度,其间以空格分隔。

题目保证这些数字以及它们的和都不会超过231。

输出:按下列格式输出:,其中N1是外向型人的个数;N2是内向型人的个数;N3是两群人总活跃度之差的绝对值。

2.那就别担心了(25分)。

下图转自“英式没品笑话百科”的新浪微博——所以无论有没有遇到难题,其实都不用担心。

博主将这种逻辑推演称为“逻辑自洽”,即从某个命题出发的所有推理路径都会将结论引导到同一个最终命题(开玩笑的,千万别以为这是真正的逻辑自洽的定义……)。

现给定一个更为复杂的逻辑推理图,本题就请你检查从一个给定命题到另一个命题的推理是否是“逻辑自洽”的,以及存在多少种不同的推理路径。

例如上图,从“你遇到难题了吗?”到“那就别担心了”就是一种“逻辑自洽”的推理,一共有3条不同的推理路径。

输入:首先在一行中给出两个正整数N(1<N≤500)和M,分别为命题个数和推理个数。

这里我们假设命题从1到N编号。

接下来M行,每行给出一对命题之间的推理关系,即两个命题的编号S1 S2,表示可以从S1推出S2。

题目保证任意两命题之间只存在最多一种推理关系,且任一命题不能循环自证(即从该命题出发推出该命题自己)。

最后一行给出待检验的两个命题的编号A B。

输出:在一行中首先输出从A到B有多少种不同的推理路径,然后输出Yes如果推理是“逻辑自洽”的,或No如果不是。

题目保证输出数据不超过109。

3.凑零钱(25分)。

韩梅梅喜欢满宇宙到处逛街。

c语言程序设计(第四版)考试题

c语言程序设计(第四版)考试题

c语言程序设计(第四版)考试题C程序设计(第四版)期末考试题本卷共有4道大题:一、单项选择题(20道小题,共20分)1、以下对C语言函数的有关描述中,正确的是( )(1分)A、在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B、C函数既可以嵌套定义又可以递归调用C、函数必须有返回值,否则不能使用函数D、C程序中有关调用关系的所有函数必须放在同一个源程序文件中2、strcpy库函数用于复制一个字符串。

若有以下定义:char *str1="copy",str2[10],*str3="hijklmn";char *str4,*str5="abcd";则对strcpy库函数的错误调用是( )(1分)A、strcpy(str2,str1)B、strcpy(str3,str1)C、strcpy(str4,str1)D、strcpy(str5,str1)3、设有以下语句:char str[4][12]={"aaa","bbb","ccc","ddd"};char *strp[4]; int i;for(i=0;i<4;i++) strp[i]=str[i]; 若0<=k<4,下列选项中对字符串的非法引用是( )(1分)A、strpB、str[k]C、strp[k]D、*strp4、以下各选项企图说明一种新的类型名,其中正确的是( )(1分)A、typedef v1 int;B、typedef v2=int;C、typedef v1 int v3;D、typedef v4: int;5、若以下定义和语句:int a[]={1,2,3,4,5,6,7,8,9,0}; int *p,i;p=a;0<i<="" p="">A、&(a+1)B、a++C、&pD、&p[i]6、C语言标准库函数"fgets(string,n,fp)"的功能是( )(1分)A、从文件fp中读取长度为n的字符串存入指针string指向的内存B、从文件fp中读取长度不超过n-1的字符串存入指针string指向的内存C、从文件fp中读取n个字符串存入指针string指向的内存D、从文件fp中读取不超过长度为n的字符串存入指针string指向的内存7、以下叙述中不正确的是( )(1分)A、在函数中,通过return语句传回函数值B、在函数中,可以有多条return语句C、在C中,main后的一对圆括号中也可以带有形参D、在C中,调用函数,必需在一条独立的语句中完成8、若有以下定义:char a;int b; float c;double d; 则表达式a*b+d-c值的类型为( )(1分)A、floatB、intC、charD、double9、以下叙述中正确的是( )(1分)A、输入项可以是一个实型常量,如:scanf("%f",3.5);B、只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf("a=%d ,b=%d");C、当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf("%4.2f",&d);D、当输入数据时,必须指明变量地址,例如:scanf("%f",&f);10、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是( )(1分)A、INPUT x、y、z;B、scanf("%d%d%d",&x,&y,&z);C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z);11、若变量都已正确定义,a=2;b=3;printf(a>b?"* * *a=%d":"# # #b=%d",a ,b);则程序段( )(1分)A、没有正确的输出格式控制B、输出为:* * * a=2C、输出为:# # # b=2D、输出为:* * * a=2# # # b=212、设有如下的变量定义:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C 语言语法的表达式是( )(1分)A、a=a-=(b=4)*(a=3)B、x%(--3);C、a=a*3=2D、y=float(i)13、假设所有变量均为整型,表达式(a=2,b=5,a>b? a++:b++,a+b)的值是( )(1分)A、7B、8C、9D、214、以下标识符中,不能作为合法的C用户定义标识符的是( )(1分)B、printC、WORDD、sizeof15、以下合法的赋值语句是( )(1分)A、x=y=100B、d--;C、x+y;D、c=int(a+b);16、在下列选项中,没有构成死循环的程序是( )(1分)A、int i=100;whine(1) {i=i%1001;if (i>100)break;}B、for (;;);C、int k=1000;do {k;}while(k>=1000);D、int s=36;while(s);--s;17、设a=1,b=2,c=3,d=4,则表达式:a<b?a:cA、4B、3C、2D、118、假定w、x、y、z、m均为int型变量,有如下程序段:w=1; x=2; y=3; z=4; m=(w<x)?w:x;< p="">m=(mA、4B、3C、2D、119、有定义语句:int a=4,b=5,c=6,x;,则以下选项中各程序段执行后,x的值不为6的是( )(1分)A、if (a<6) x=6; else if (a<5) x=5; else x=4;B、if (a<6) x=6; if (a<5) x=4; if (bD、if (c20、在宏定义#define PI 3.14159中,用宏名PI代替一个( )(1分)A、单精度数B、双数度数C、常量D、字符串二、填空题(12道小题,共40分)1、计算机中内存储器的最小存储单位是字节,一个整数占个字节(2分)--------------------------------------------------------------------------------2、一个算法应该具有以下特点:、确定性、有零个或多个输入、有一个或多个输出、有效性(2分)--------------------------------------------------------------------------------3、唯一的一个三目运算符是(2分)--------------------------------------------------------------------------------4、printf("%5.3f\n",123456.12345);输出为(2分)--------------------------------------------------------------------------------5、描述命题“A小于B或小于C”的表达式为(2分)--------------------------------------------------------------------------------6、int i=0,s=0,a[10];while (i<10)s+=a[i++];等价于int i,s,a[10];for()(2分)--------------------------------------------------------------------------------7、已知一数组:a[0]=10,a[1]=20,a[2]=30,a[3]=40,a[4]=50,s 是int型指针,s已指向a[4],现要使s指向a[2],则s=(2分)--------------------------------------------------------------------------------8、变量分为全局和局部两种,变量离开了其所定义的函数,其存储单元就会被释放。

C语言第四套

C语言第四套

判断题第1题-1.0分#include”stdio.h"是每个程序中必须写的。

N第2题-1.0分在C程序中,语句之间必须要用分号";"分隔Y第3题-1.0分在一个C程序中,main函数必须出现在所有函数之前.N第4题- 1.0分若x为float型变量,则以下语句x=213.82631;printf("%-4.2f\n",x);的输出为213.82.N第5题- 1.0分一个变量可以同时被定义为多种类型.N第6题- 1.0分#define和printf都不是C语句,Y第7题-1.0分[3,6,18,23]是合法的表达式N第8题-1.0分表达式(j=3, j++)的值是4.N第9题-1.0分执行表达式(int)i后,的类型一定变为整型.N第10题-1.0分若a是实型变量,在执行了a= 5;后,a将变为整型变量.N第11题-1.0分若a和b类型相同,,在执行了赋值语句a= b;后b中的值将放入a中b中的值不变,Y第12题- 1.0分若a是实型变量C程序中允许以下赋值a= 10;因此实型变量中允许存放整型数据,N第13题- 1.0分int i=3,j=5; f(>j);j+ +; else i++;是正确的。

N第14题- 1.0分若有int i =10, j=0;则执行完语句if(j=0) i ++;elsei--;i的值为11. N第15题-1.0分if语句后面的控制表达式只能使用关系表达式或逻辑表达式,N第16题-1.0分int a=1,b=2,c=3;if(a>c)b=a;a=c;c= b;则c的值为2. Y第17题-1.0分若有int i=10, j=0;则执行完语句if(j=0)i+ +; else i--; i的值为11. N第18题-1.0分循环较套中,内外层循环控制变最可以使用相同名,不会造成混乱。

N第19题-1.0分for(i=0,k=-1;k=1;k+ +,i++ )printf("*\n");循环结束的条件不合法. N第20题-1.0分数组定义int a[10];占内存10个字节. N第21题- 1.0分数组说明int a[3,3]={1,2.3.4.5 .6}.是正确的. N第22题- 1.0分在调用函数时,实参把值传送给对应位置上的形参形参的值也能传给实参,N第23题-1.0分C语言中函数调用的方式只有函数做表达式一种. N第24题-1.0分在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量. Y第25题- 1.0分在C语言中,此定义和语句是合法的:enum aa { a=5,b,g}bb;bb=(enum aa)5; Y选择题第1题- 1.0分(共25题,共25.0分)求平方根函数的函数名为(D).(B)abs(C)pow(D)sqrt第2题- 1.0分(共25题,共25.0分)有以下定义和语句:struct student{ int age; int num; };struct student stu[3]={{1001,20};{1002,19},{1003,21}};void main(){ struct student *p;p=stu;则不正确的引用是( D) 。

C程序设计谭浩强第四版试卷试卷及答案

C程序设计谭浩强第四版试卷试卷及答案

C程序设计谭浩强第四版试卷试卷及答案Last updated on the afternoon of January 3, 2021一、单项选择题(20题,每题2分,共40分)1.一个C语言程序是由组成的。

A.主程序B.子程序C.函数D.过程2.判断char型变量c1是否为小写字母的最简单且正确的表达式为。

A.'a'<=c1<='z'B.(c1>=a)&&(c1<=z)C.('a'<=c1)||('z'>=c1)D.(c1>='a')&&(c1<='z')3.为了判断两个字符串s1和s2是否相等,应当使用。

(s1==s2)(s1=s2)(strcpy(s1,s2))(strcmp(s1,s2)==0)4.设a,b都是int型变量,则表达式:(a=2,b=5,a>b?a++:b++,a+b)的值为。

5.设x、y和t均为int型变量,则以下语句:t=x;x=y;y=t;的功能是。

A.把x和y按从大到小排列?B.把x和y按从小到大排列C.无确定结果?D.交换x和y中的值6.下面标识符中,合法的用户标识符为。

#Ad?7.循环语句while(!E);中的表达式!E等价于。

!=0?!=1?==0?==18.设有以下语句,则不是对a数组元素的正确引用,其中0≤i<10。

inta[10]={0,1,2,3,4,5,6,7,8,9};int*p=a;供选择的答案是:[p-5]B.*(&a[i])[i]D.*(a+i)9.若用数组名作为函数调用的实参,传递给形参的是。

A.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数10.下面四段程序中,不是死循环的程序段是。

──────—───┬───────────────A.inti=100;k=0;while(1)do{++k;{i=i%100+1;}while(k>=0);if(i>100)───────────────break;s=3379;}│while(s);──────────┤s++;(;;);──────────┴───────────────11.在一个文件中定义的全局变量的作用域为。

C语言练习题(谭浩强第四版)附有答案

C语言练习题(谭浩强第四版)附有答案

C语言练习题(谭浩强第四版)附有答案高级语言程序设计综合练习一学号:姓名:一、选择题1、一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:()A、任意B、第一个函数必须是主函数,其他函数任意C、必须完全按照执行的顺序排列D、其他函数可以任意,主函数必须在最后2、下列四个叙述中,正确的是:()A、C程序中的所有字母都必须小写B、C程序中的关键字必须小写,其他标示符不区分大小写C、C程序中的所有字母都不区分大小写D、C语言中的所有关键字必须小写3、下列四个叙述中,错误的是:()A、一个C源程序必须有且只能有一个主函数B、一个C源程序可以有多个函数C、在C源程序中注释说明必须位于语句之后D、C源程序的基本结构是函数4、下面不是C语言合法标识符的是:()A、abcB、5nC、_4mD、某35、以下叙述不正确的是:()A.分号是C语句的必要组成部分B.C程序的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定非用main来表示6、C语言中允许的基本数据类型包括:()A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型7、C语言中能用八进制表示的数据类型为:()A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型8、下列属于C语言合法的字符常数是:()A、’\\97’B、”A”C、’\\t’D、”\\0”9、在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:()A、char高级语言程序设计综合练习一学号:姓名:printf(“%d,%c\\n”,c2-c1,c2-‘a’+’A’);则输出结果是:()A、2,MB、3,EC、2,ED、输出项与相应的格式控制不一致,输出结果不确定11、以下合法的赋值语句是:()A、某=y=100B、d--;C、某+yD、c=int(a+b);12、在以下一组运算符中,优先级最高的是:()A、<=B、==C、%D、&&13、下列能正确表示a≥10或a≤0的关系表达式是:()A、a>=10ora<=0B、a<=10||a>=0C、a>=10||a<=0D、a>=10&&a<=014、下列只有当整数某为奇数时,其值为“真”的表达式是:()A、某%2==0B、!(某%2==0)C、(某-某/2某2)==0D、!(某%2)15、设a为整型变量,不能正确表达数学关系10=15)C、a>10&&a<15D、!(a<=10)&&!(a>=15)16、已知某=43,ch=’A’,y=0;则表达式(某>=y&&chA、0B、1C、2D、318、一个可执行的C程序的开始执行点是:()A.程序中的第一个语句B.包含文件中的第一个函数C.名为main的函数D.程序中的第一个函数19、组成C语句的一个必不可少的符号是:()A.逗号B.引号C.冒号D.分号20、若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:(A.intB.longC.floatD.double21、下述是C语言中有关变量定义的几个说法,正确的是:()A.变量可以不定义直接使用B.一个说明语句只能定义一个变量C.几个不同类型的变量可在同一语句中定义D.变量可以在定义时进行初绐化22、与某某=y+z等价的赋值表达式是:()2)高级语言程序设计综合练习一学号:姓名:A.某=y+zB.某=某某y+zC.某=某某(y+z)D.某=某+y某z23、当代电子计算机能够自动地处理指定的问题是因为:()A.计算机是电动的B.有解决该问题的计算机程序C.事先存储了解决该问题的程序D.以上都不是24、以下叙述中最准确的是:()A.计算机程序是处理某一问题所有指令的集合B.计算机程序是处理某一问题所用到的所有数据的集合C.计算机程序是处理某一问题的所有指令及其数据的集合D.计算机程序是处理某一问题的所有指令及其数据的有序集合25、目前编写计算机程序一般采用的是:()A.机器语言B.汇编语言C.高级语言D.英语26、设计一个计算机程序最基本的工作是:()A.制定正确的算法B.选择合理的数据结构C.制定正确的算法和选择合理的数据结构D.以上都不是27、算法具有五个特性,以下选项中不属于算法特性的是:()A.有穷性B.简洁性C.可行性D.确定性28、下述哪一个不是结构化程序基本结构:()A.顺序B.选择C.循环D.嵌套29、C语言是一种:()A.机器语言B.汇编语言C.高级语言D.以上都不是30、C语言源程序的扩展名为:()A..e某eB..cC..objD..cpp31、C程序编译、连接后最终产生(即计算机执行)的文件的扩展名为()A..e某eB..cC..objD..cpp32、构成C语言源程序的基本单位是:()A.子程序B.过程C.文本D.函数33、下列叙述正确的是:()A.C语言源程序可以直接在DOS环境中运行B.编译C语言源程序得到的目标文件可以直接在DOS环境中运行C.C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行D.C语言源程序可以直接在VC++环境中运行34、某C程序由一个主函数main()和一个自定义函数ma某()组成,则该程序:()3高级语言程序设计综合练习一学号:姓名:A.写在前面的函数先开始执行B.总是从main()函数开始执行C.总是从ma某()函数开始执行D.写在后面的函数先开始执行35、以下叙述不正确的是:()A.分号是C语句的必要组成部分B.C程序的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定用mian表示36、以下为C语句的是:()A.a=8B.a++;C.if(a>8)D.#include37、以下所列语句中,合法的语句是:()A.a=1,b=2B.++a;C.a=a+1=5D.y=int(a);二、判断题1.(T)C语言是严格区分大写和小写的,因此主函数不能写成main()以外的其他形式。

C语言》课程期末考试第四套

C语言》课程期末考试第四套

C语⾔》课程期末考试第四套第四套期末考试题第⼀部分选择题单项选择题(本⼤题共20⼩题,每⼩题1分,共20分)在每⼩题列出地四个选项中只有⼀个选项是符合题⽬要求地,请将正确选项前地字母填在题后地括内1. 在计算机上可以直接运⾏地程序是_____________.A. ⾼级语⾔程序B.汇编语⾔程序C.机器语⾔程序D. C语⾔程序2. 不属于C语⾔地是__________.A. forB. gotoC. ifD. loop3. 正确地C语⾔⾃定义标识符是__________.A. num(10)B. file_bakC. continueD. class+24. 字符串”m\x43\\\np\102q”地长度是__________.A. 7B. 9C. 15D. 165. 设 int x=8, y, z; 执⾏y=z=x++; x=y==z后,变量x地值是__________.A. 0B. 1C. 8D. 96. 对于输⼊语句scanf(“%f,%f”, &a, &b); 要使变量a、b地值分别为1.78和2.48,则正确地输⼊是__________.A. 1.78, 2.48 后跟回车B. 1.78 2.48 后跟回车C. 1.782.48 后跟回车D. 1.78;2.48 后跟回车7. 设int a=8, b=7, c=6, x=1; 执⾏语句if(a>6) if(b>7) if(c>8) x=2; else x=3;后x地值是__________.A. 0B. 1C. 2D. 38. 执⾏下列程序段x=9;while(x>7) { printf(“*”); x--; }后输出地结果是__________.A. ****B. ***C. **D. *9. 定义⼀个具有10个元素地整数型数组,应当使⽤语句__________.A. int a[10];B. int a[2,5];C. int a[];D. int *a[10];10. 设char str1[10]=”ABCDE”, str2[10]=”xyz”;则执⾏语句printf(“%d”, strlen(strcpy(str1, str2)));后地输出结果是__________.A. 9B. 8C. 5D. 311. 设int x[]={1,3,5,7,9,11,13}, *p=x;则不能正确引⽤数组元素地表达式是__________.A. *(p--)B. *(--p)C. *(p++)D. *(++p)12. 设int x[]={1,2,3,4}, y, *p=&x[1];则执⾏语句 y=(*--p)++; 后变量y地值为__________.B. 2C. 3D.413. 函数调⽤时,下列说法中不正确地是__________.A. 若⽤值传递⽅式,则形式参数不予分配内存B. 实际参数和形式参数可以同名C. 主调函数和被调⽤函数可以不在同⼀个⽂件中D. 函数间传递数据可以使⽤全局变量14. 执⾏下列程序int fun(int x1, int x2){ int x; x1>x2 ? (x=3) : (x=4); return (x+x1); }main(){ printf(“%d\n”, fun(7,8)); }后输出地结果.A. 9B. 10C. 11D. 1215. 设typedef union {long x[2]; short y[4][5]; char z[10];} TYPE1;TYPE1 u1;则printf(“%d\n”, sizeof(u1)); 地输出是__________.A. 8B. 10C. 40D. 5816. 下列数据类型中不属于构造类型地是__________.A. 数组型B. 结构型C. 共⽤型D. 枚举型17. 存储整型数据-7856时,在⼆进制⽂件和⽂本⽂件中占⽤地字节数分别是__________.A. 2,2B. 2,5C. 5,518. 以只写⽅式打开⼀个⼆进制⽂件,应该选择地使⽤⽅式是__________.A. “a+”B. “w+”C. “rb”D. “wb”19. 计算平⽅数时不可能引起⼆义性地宏定义是A. #define SQR(x) x*xB. #define SQR(x) (x)*(x)C. #define SQR(x) (x*x)D. #define SQR(x) ((x)*(x))20. 执⾏下列程序#define M(a,b) (a)>(b) ? (a):(b)main(){ int i=10, j=15; printf(“%d\n”, 10*m(i,j)); }后输出地结果是__________.A. 10B. 15C. 100D. 150第⼆部分⾮选择题⼆、填空题(本⼤题共10⼩题,每⼩题2分,共20分)21. 以下分别是算术、位、关系和逻辑运算符+ & < !其优先级最低地是__________.22. 设int x=4; 表达式x+=x*=x+1地值是__________.23. 设int a, b=10;执⾏a=b<<2+1; 后a 地值是__________.24. 设short k=-1; 执⾏printf(“%o”,k); 输出为__________.25. 设int j,k; 执⾏for(j=k=0; j-11; k+=j++);后k 地值是__________.26. 函数调⽤时,若形、实参数均为数组,则其传递⽅式是__________.27. 在C 语⾔中,__________类型变量地所有成员以覆盖⽅式共享存储单元.28. 设FILE *fp; 关闭fp ⽂件地操作语句是__________.29. 设float *p, m=2.718; 根据下列图⽰,建⽴指针变量p 和变量m 之间地关系地赋值语句是__________.30. 设 int a[3][4], *p=a[1]; 该指针变量p 指向地元素是__________.三、程序分析题(本⼤题共5⼩题,每⼩题5分,共25分)阅读下列程序,将输出结果写到各题右侧地空⽩处31. int a=200;main(){ int i;for(i=1; i<=5; i++) {a++; printf(“%d,”, a); s();}}void s(){ static int a=20;a++; printf(“%d \n”, a);}32. #include “stdio.h”main(){ char c;c=getchar();if(c>=’a’ && c<=’w’ || c>=’A’ && c<=’W’) c=c+3;else if(c>=’x’ && c<=’z’ || c>=’X’ && c<=’Z’) c=c -23; printf(“%c \n”, c);}设从键盘上输⼊Next33. #define N 7main(){ int i, j, temp, a[N]={1, 2, 3, 4, 5, 6, 7};for(i=0; imj=N-1-i;temp=a[i]; a[i]=a[j]; a[j]=temp;}for(i=0; i}34. struct porb{ char *name; int count;} x[]={“Li ning”, 19, “Lang ping”, 21, “Zhu jian hua”, 20}; main(){ int i;for(i=0; i<3; i++)printf(“%s: %d \n”, x[i].name, x[i].count);}35. main(){ union {short a; char ch;} M;M.a=100; M.ch=’A’;printf(“%d,%d,%c \n”, sizeof(M), M.a, M.ch);}四、程序填充题(本⼤题共3⼩题,每⼩题6分,共18分)阅读下列程序,将横线处缺少地部分补上,使其能正确运⾏.36. 下⾯数pi()地功能是根据下列公式求π值(直到最后⼀上于10-6为⽌).(9)473523173523152313112++??+?++=π double pi(){ double s=0.0, t=1.0; int n;for(__________; t>=__________; n++) {s+=t; t=n*t/(2*n+1);}return(2.0*__________);}37. 将⼀字符串中地⼩写英⽂字母改成⼤写.main(){ int i=0; char str[80];scanf(“%s”, str);while(__________) {if(__________) str[i]-=’a’-‘A’;__________;}printf(“%s \n”, str);}38. 使⽤结构型计算复数x 和y 地和.main(){ struct comp {float re, im;};__________ x,y,z;scanf(“%f%f%f%f”, &x.re, &x.im, &y.re, &y.im);z.re=__________; z.im=__________;printf(“%6.2f, %6.2f\n”, z.re, z.im);}五、程序设计题(本⼤题共3⼩题,第39⼩题5分,第40、41⼩题各6分,共17分)39. 编写⼀程序,输出如下图形.* * * * ** * * * ** * * * ** * * * *40. 编写⼀程序,从键盘输⼊10个实数,计算输出算术平均值.41. 编写⼀个模拟简单计算器地程序,计算表达式:a1 op a2地值,要求a1、op、a2从键盘输⼊.其中a1、a2(作除数时不能为0)为数值,op为运算符+、-、*、/.版权申明本⽂部分内容,包括⽂字、图⽚、以及设计等在⽹上搜集整理.版权为个⼈所有This article includes some parts, including text, pictures, and design. Copyright is personal ownership.⽂档来源⽹络及个⼈整理,勿⽤作商业⽤途⽤户可将本⽂地内容或服务⽤于个⼈学习、研究或欣赏,以及其他⾮商业性或⾮盈利性⽤途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本⽹站及相关权利⼈地合法权利.除此以外,将本⽂任何内容或服务⽤于其他⽤途时,须征得本⼈及相关权利⼈地书⾯许可,并⽀付报酬.⽂档来源⽹络及个⼈整理,勿⽤作商业⽤途Users may use the contents or services of this article for personal study, research or appreciation, and othernon-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.⽂档来源⽹络及个⼈整理,勿⽤作商业⽤途转载或引⽤本⽂内容必须是以新闻性或资料性公共免费信息为使⽤⽬地地合理、善意引⽤,不得对本⽂内容原意进⾏曲解、修改,并⾃负版权等法律责任.⽂档来源⽹络及个⼈整理,勿⽤作商业⽤途Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.⽂档来源⽹络及个⼈整理,勿⽤作商业⽤途本⽂部分内容,包括⽂字、图⽚、以及设计等在⽹上搜集整理.版权为个⼈所有This article includes some parts, including text, pictures, and design. Copyright is personal ownership.⽂档来源⽹络及个⼈整理,勿⽤作商业⽤途⽤户可将本⽂地内容或服务⽤于个⼈学习、研究或欣赏,以及其他⾮商业性或⾮盈利性⽤途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本⽹站及相关权利⼈地合法权利.除此以外,将本⽂任何内容或服务⽤于其他⽤途时,须征得本⼈及相关权利⼈地书⾯许可,并⽀付报酬.⽂档来源⽹络及个⼈整理,勿⽤作商业⽤途Users may use the contents or services of this article for personal study, research or appreciation, and othernon-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.⽂档来源⽹络及个⼈整理,勿⽤作商业⽤途转载或引⽤本⽂内容必须是以新闻性或资料性公共免费信息为使⽤⽬地地合理、善意引⽤,不得对本⽂内容原意进⾏曲解、修改,并⾃负版权等法律责任.⽂档来源⽹络及个⼈整理,勿⽤作商业⽤途Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.⽂档来源⽹络及个⼈整理。

青少年软件编程(C语言)等级考试试卷(四级)202206

青少年软件编程(C语言)等级考试试卷(四级)202206

青少年软件编程(C语言)等级考试试卷(四级)分数:100 题数:4一、编程题(共4题,共100分)1. 公共子序列我们称序列Z = < z1, z2, ..., z k >是序列X = < x1, x2, ..., x m >的子序列当且仅当存在严格上升的序列< i1, i2, ..., i k >,使得对j = 1, 2, ... ,k, 有x ij = z j。

比如Z = < a, b, f, c > 是X = < a, b, c, f, b, c >的子序列。

现在给出两个序列X和Y,你的任务是找到X和Y的最大公共子序列,也就是说要找到一个最长的序列Z,使得Z既是X的子序列也是Y的子序列。

时间限制:3000内存限制:65536输入输入包括多组测试数据。

每组数据包括一行,给出两个长度不超过200的字符串,表示两个序列。

两个字符串之间由若干个空格隔开。

输出对每组输入数据,输出一行,给出两个序列的最大公共子序列的长度。

样例输入样例输出试题编号:_4_01试题类型:编程题标准答案:试题难度:一般展示地址:点击浏览考生答案:考生得分:0是否评分:已评分评价描述:2. 硬币问题有N(不大于100)种硬币,编号为1至N,已知每种硬币的重量(不超过100的正整数)和面额(不超过100的正整数),每种硬币数量不限。

选取总重量不超过C(不大于1000的正整数)的硬币,最多能获得多少总面额?时间限制:1000内存限制:65536输入第一行输入N 第二行输入C 第三行输入各硬币重量,用空格隔开第四行输入各硬币价值,用空格隔开输出最大总面额样例输入样例输出试题编号:_4_02试题类型:编程题标准答案:试题难度:一般展示地址:点击浏览考生答案:(此题已作答)考生得分:0是否评分:已评分评价描述:3. 田忌赛马你一定听过田忌赛马的故事吧?如果3匹马变成1000匹,齐王仍然让他的马按从优到劣的顺序出赛,田忌可以按任意顺序选择他的赛马出赛。

2022.12全国青少年软件编程(C语言)等级考试试卷(四级)

2022.12全国青少年软件编程(C语言)等级考试试卷(四级)

2022.12青少年软件编程(C语言)等级考试试卷(四级)开餐馆北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n 个地点可供选择。

小明打算从中选择合适的位置开设一些餐馆。

这n 个地点排列在同一条直线上。

我们用一个整数序列m1, m2, ... m n来表示他们的相对位置。

由于地段关系,开餐馆的利润会有所不同。

我们用p i表示在m i处开餐馆的利润。

为了避免自己的餐馆的内部竞争,餐馆之间的距离必须大于k。

请你帮助小明选择一个总利润最大的方案。

时间限制:1000内存限制:65536输入标准的输入包含若干组测试数据。

输入第一行是整数T (1 <= T <= 1000) ,表明有T 组测试数据。

紧接着有T组连续的测试。

每组测试数据有3行, 第1行:地点总数n (n < 100), 距离限制k (k > 0 && k < 1000). 第2行:n 个地点的位置m1 , m2, ... mn( 1000000 > mi > 0 且为整数,升序排列) 第3行:n 个地点的餐馆利润p1 , p2, ... pn ( 1000 > pi > 0 且为整数)输出对于每组测试数据可能的最大利润样例输入样例输出糖果由于在维护世界和平的事务中做出巨大贡献,Dzx被赠予糖果公司2010年5月23日当天无限量糖果免费优惠券。

在这一天,Dzx可以从糖果公司的N件产品中任意选择若干件带回家享用。

糖果公司的N件产品每件都包含数量不同的糖果。

Dzx希望他选择的产品包含的糖果总数是K的整数倍,这样他才能平均地将糖果分给帮助他维护世界和平的伙伴们。

当然,在满足这一条件的基础上,糖果总数越多越好。

Dzx最多能带走多少糖果呢?注意:Dzx只能将糖果公司的产品整件带走。

时间限制:7000内存限制:65536输入第一行包含两个整数N(1<=N<=100)和K(1<=K<=100) 以下N行每行1个整数,表示糖果公司该件产品中包含的糖果数目,不超过1000000输出符合要求的最多能达到的糖果总数,如果不能达到K的倍数这一要求,输出0样例输入样例输出提示Dzx的选择是2+3+4+5=14,这样糖果总数是7的倍数,并且是总数最多的选择。

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

若x,i,j,k 都是int型变量,则计算x=(i=4,j=16,k=i+32)后,x的值为:(D).A.52B.16C.4D.36整型变量x=1,y=3,经下列计算后,x的值不等于6的是(D)。

A.x=y*4/2B.x=9-(--y)-(--y)C.x=(x=1+2,x*2)D.x=y<2?6:5以下程序的输出结果为(A)。

main(){int i=010,j=10;printf("%d,%d\n",++i,j--);}A.9,10B.10,9C.010,9D.11,10如下说法不正确的是(D).A.若b为假a为真,则 a||b为真B.若b为真a为假,则 a||b为真C.若b为真a为真,则 b&&!a为假D.若b为假,则!b+1为假下列(C)表达式的值为真,其中a=5;b=8;c=10;d=0A.(a*2-c)||dB.a*2>8+2C.a-b<c*dD.a&&d以下能计算1×2×3×┈×10的程序段是(C).A.do{ i=1;s=1;s=s*i;i++;}while(i>=10) ;B.do{ i=1;s=1;s=s*i;i++;}while(i<=10) ;C.i=1;s=1;do {s=s*i; i++; }while(i<=10) ;D.i=1;s=1; do { s=s*i; i++;}while(i>=10) ;以下正确的描述是(A).A.continue语句用来终止本次循环,继续下一次循环。

B.switch语句中不能出现continue语句C.在循环中break语句不能独立出现D.goto语句只能用于退出多层循环下面各语句中,能正确进行赋字符串操作的语句是(B).A.char s1[5][ ]={"ABCDE"};B.char s2[6]={'A','B','C','D','E'};C.char st[ ][ ]={"ABCDE"};D.char s[5]={'A','B','C','D','E'};下述对C语言字符数组的描述中,错误的是(C).A.不可以用关系运算符对字符数组中的字符串进行比较.B.字符数组中的字符串可以整体输入、输出.C.可以通过赋值运算符"="对字符数组整体赋值.D.字符数组中可以存放字符串.若有说明 int a[3][4];则对a数组元素的正确引用是(C)。

A.a[1,3]B.a[2][4]C.a[1+1][0]D.a(2)(1)程序运行结束后,屏幕上输出值为(B).static int x=10;f( ){ x++;}main( ){ int x=3;f( );x- -;printf("%d",x);}A.10B.2C.11D.3C语言规定,函数返回值的类型是由(A)。

A.在定义该函数时所指定的函数类型所决定B.return语句中的表达式类型所决定C.调用该函数时系统临时决定D.调用该函数时的主调函数类型所决定若调用一个函数,且此函数中没有return语句,则正确的说法是:该函数(B)。

A.没有返回值B.返回一个不确定的值C.返回若干个系统默认值D.能返回一个用户所希望的值设有宏定义#define PI 3.14 和#define S(r) PI*r*r,则S(2)的值为(B).A.6.28B.12.56C.3.14D.9.42下面选择中正确的赋值语句是(设char a[5],*p=a;)(A)。

A.p="abcd";B.a="abcd";C.*a="abcd";D.*p="abcd";static struct {int a1;float a2;char a3;}a[10]={1,3.5,'A'}; 说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量是(A)。

A.a[0]B.a[10]C.a[1]D.a[-1]在C程序中,可以一次写入一组数据到指定文件中的函数是(C)。

A.fprintfB.freadC.fwriteD.fputc整型变量在可输出字符范围内,可以和字符型数据相互转化. Tputchar 函数的原型(函数说明)在 stdio.h 内. T设i=1,j=2,k=3,则逻辑表达式!(i>j)||!k&&1的值为0. F已知三目运算exp1?exp2:exp3的含义是先求exp1,若为0,则求解exp2,则表达式值为exp2的值,否则是exp3的值. F对于for(表达式1;表达式2;表达式3)语句来说,continue语句意味着转去执行表达式2. Ffor循环可以用于循环次数不确定而给出循环条件的情况下. T设有数组定义: char array[ ]="hello"; 则数组 array所占的内存空间为5字节. F数组整体不参加数据处理(即不参加各种运算),参加数据处理的只能是数组的元素. Tputs 函数用来输出一个字符. F在一个函数中定义的静态局部变量不能被另外一个函数所调用. TC语言中,只允许直接递归调用而不允许间接递归调用. F数组名可作为函数的实参,但不能作为函数的形参. F计算机编译系统对宏定义在编译时进行语法检查. F定义 int k[ ]={1,2,3,4},y,*p=&k[1];,则执行y=(*--p)++后, y的值不是2. T在定义结构体变量时,允许使用初始化方法对其整体赋初值. TC语言中,在打开文件时,必须说明文件的使用方式,"w"用于文件的读写. F若x和n均是int型变量,且x和n的初值均为5,则计算表达式 x+=n++ 后x的值为 __10___,n 的值为__6___.设(k=a=5,b=3,a*b),则表达式的值为__15___.若int x=6;则x+=x-=x*x表达式最后x的值是__-60___.设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&&b+c/2 后,t的值是__1___.C语言中,数组元素的下标下限为__0___.局部静态变量是在静态存储区分配存储单元的,在整个程序运行期间始终占__内存___的.设有以下共用体类型说明和变量定义,在TC编译环境下,变量d在内存所占字节数是 __12___。

union stud{ short int num;char name[8];float score[3];double ave;}d,stu[3];feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为__非零值___。

/*------------------------------------------------【程序设计】--------------------------------------------------功能:将主函数中输入的字符串反序存放。

例如:输入字符串"abcdefg",则应输出"gfedcba"。

------------------------------------------------*/#include "stdio.h"#include "string.h"#include "conio.h"#define N 81void fun(char *str,int n){/*********Begin**********//********** End **********/}【参考代码】int i,j;char c;for(i=0,j=n-1;i<j;i++,j--) /*或者for(i=0,j=n-1;i<n/2;i++,j--)*/ {c=*(str+i);*(str+i)=*(str+j);*(str+j)=c;}/*------------------------------------------------【程序设计】--------------------------------------------------功能:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。

例如:当s中的数为:时,t中的数为:642。

------------------------------------------------*/#include "stdio.h"long fun (long s){/*********Begin**********//********** End **********/}【参考代码】long sl=10,t;s /= 10;t = s % 10;while(s > 0){ s = s/100;t = s%10*sl + t;sl = sl * 10;}return t;;/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:实现两个字符串的连接。

例如:输入dfdfqe和12345时,则输出dfdfqe12345.------------------------------------------------------*/#include"stdio.h"main(){char s1[80],s2[80];void scat(char s1[],char s2[]);gets(s1);gets(s2);scat(s1,s2);puts(s1);}void scat (char s1[],char s2[]){int i=0,j=0;/**********ERROR**********/while(s1[i]=='\0') i++;/**********ERROR**********/while(s2[j]=='\0'){/**********ERROR**********/s2[j]=s1[i];i++;j++;/**********ERROR**********/s2[j]='\0';}【改错1】【参考答案】while(s1[i]!='\0')i++;while(s1[i])i++;while(s1[i]!=NULL)i++;while(s1[i]!=0)i++;【改错2】【参考答案】while(s2[j]!='\0')while(s2[j])while(s2[j]!=NULL)while(s2[j]!=0)【改错3】【参考答案】s1[i]=s2[j];【改错4】【参考答案】s1[i]='\0';s1[i]=NULL;*(s1+i)='\0';s1[i]=0;/*------------------------------------------------------ 【程序改错】--------------------------------------------------------题目:输出某学生出生的月份。

相关文档
最新文档