C语言试卷第四套.
- 格式:doc
- 大小:55.00 KB
- 文档页数:5
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语言程序设计试题试卷类别 B 适用专业、年级、班2014级理科1.下列叙述错误的是()A) C程序中的每条语句都用一个分号作为结束符B) C程序中的每条命令都用一个分号作为结束符C) C程序中的变量必须先定义,后使用D) C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写2.以下有4组用户标识符,其中合法的一组是()A) For B) 4d C) f2_G3 D) WORD-sub DO IF voidCase Size abc define3.若变量已正确定义并赋值,以下符合C语言语法的表达式是()A)a:=b+1B)a=b=c+2C)int 18.5%3D)a=a+7=c+b4.以下选项中不正确的实型常量是()A)1.607E-1 B)0.7204e C)-77.77 D)234e-25.设x,y和z是int 型变量,且x=3,y=4,z=5,则下面表达式中值为0的是()A)'x' &&'y' B)x<=y C)x || y+z&&y-z D)!((x<y)&&!z|| 1)6.逻辑运算符两侧运算对象的数据类型()A)只能是0或1 B)只能是0或非0正数C)只能是整型或字符型数据D)可以是任何类型的数据7.下列不正确的字符串赋值或赋初值方式为()A)char s[10] = "hello!"; B)char s[10] = {'h','e','l','l','o','!'};C)char s[10]; s = "hello!"; D)char s[] = "hello!";8.在下列叙述中,正确的一条是()A)语句"int *pt;"中的*pt是指针变量名B)语句"int *p=a;"等价于"int *p;p=&a[0];"(a是整型数组)C)运算符*和&都是取变量地址的运算符D)已知指针变量p指向变量a,则a和*p值相同,都是变量a的值9.为表示关系x >= y >= z, 应使用的C语言表达式为()A)(x >= y) && (y >= z) B)(x >= y) AND (y >= z)C)(x >= y >= z) D)(x >= y) & (y >= z)10. for(int x=0,y=0;!x&&y<=5;y++)语句执行循环的次数是()A)0 B)5 C)6 D)无次数11.以下程序的运行结果是()#include<stdio.h>void main(void){ int m = 5;if (m++ > 5){ printf("%d\n",m); }else{ printf("%d\n", m--);}}A)4 B)5 C)6 D)712.在C语言中,引用数组元素时,其数组下标的数据类型允许是()A)整型变量B)浮点数C)整型常量D)任何类型的表达式13.已有定义:int k = 2; int *p1, *p2;且p1和p2均已指向变量k,下面不能正确执行的赋值语句是( ) BA)k = *p1 + *p2; B)p2 = k; C)p1 = p2; D)k = *p1 * (*p2);14.以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是()void main(void){ int *p, *q, a, b;p = &a;printf("input a :");scanf("%d", *p);…….. }A)*p表示的是指针变量p的地址;B)*p表示的是变量a的值,而不是变量a的地址C)*p表示的是指针变量p的值D)*p只能用来说明p是一个指针变量15.fopen()函数的mode取值r 和w 时,它们之间的差别是()A)r 可向文件输入,w 不可向文件输入B)r 不可向文件输入,w 可向文件输入C)r 不可由文件输出,w 可由文件输出D)文件不存在时,r 建立新文件,w 出错16.已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是()A)数组a和b的长度相同 B)a数组长度小于b数组长度C)a数组长度大于b数组长度D)上述说法都不对17.以下关于while()循环说法正确的是()A)while()中的括号里面只能填表达式B)while(1) {}会造成死循环C)while()括号里面只有填1才会造成死循环D)while(nA > 1)当满足条件nA > 1时跳出循环18.若有语句:CHAR *LINE[5];以下叙述中正确的是()A)定义LINE是一个数组,每个数组元素是一个基类型为CHAR的指针变量B)定义LINE是一个指针变量,该变量可以指向一个长度为5的字符型数组C)定义LINE是一个指针数组,语句中的*号称为间址运算符D)定义LINE是一个指向字符型函数的指针19.以下函数声明正确的是()A) void Test(int nA = 10,int nB);B) void Test(int,int);C) void Test(int nA,int nA);D)以上全错20.定义一个二维数组nArr[3][4],则对其元素正确引用的是()A)nArr[2][4] B)nArr[1,3] C)nArr[1+1][0] D)nArr(0)(4)二、填空(每小题2分,共2×10=20分)1.设(k=a=5,b=3,a*b),则表达式的值为()2.按内存排列顺序, 数组char a[2]中的所有元素是a[1]和()3. 求字符串长度的库函数是(),只写函数名即可4. 设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的值为()5. 已知i=5, 写出语句a=(i>5)?0:1; 执行后整型变量a 的值是()6. 若 char w,int x,float y,double z;则表达式w*x+z-y 的结果为( )类型.7. 执行语句char s[3]="ab",*p;p=3;*(p+2)的值是( )8. C 语言中一个函数由函数首部和( )两部分组成.9. 将函数funl 的入口地址赋给指针变量p 的语句是( ) 10. C 语言中,数组名是一个不可变的( )量,不能对它进行加减和赋值运算. 三、判断题(每小题1分,共1×10=10分)1.预处理命令的前面必须加一个“#”号( )2.标准格式输入函数scanf()可以从键盘上接收不同数据类型的数据项( )3.continue 不是结束本次循环,而是终止整个循环的执行( )4.在对数组全部元素赋初值时,不可以省略行数,但能省略列数( )5.函数的实参传递到形参有两种方式值传递和地址传递( )6共用体变量可以作结构体的成员,结构体变量也可以作共用体的成员( )7.浮点型常量的指数表示中,e 是可以省略的( )8.在switch 语句中,每一个的case 常量表达式的值可以相同( ) 9.do-while 循环的while 后的分号可以省略( ) 10.int (*p)[4]它表示p 是一个指针数组,它包含4个指针变量元素( )四、完善程序题(每空3分,共3×6=18分)1. 下面程序的功能是将一个字符串str 的内容颠倒过来,请填空。
若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)。
第四套测试题1.在c语言中,一维数组的定义方式为:类型说明符:数组名(d)。
a、 [constant expression]B.[integer expression]C.[integer constant]或[integer expression]D.[integer constant]2以下选项中正确的语句组是(D)。
a.chars[8];s={\b.char*s;s={\c.chars[8];s=\d.char*s;s=\3.以下能对一维数组a 进行正确初始化的语句是(c)a、 inta[10]=(0,0,0,0)b.inta[10]={};c.inta[]={0};d.inta[10]={10*1};4.若有说明:int*p,m=5,n;以下正确的程序段是(d)。
a.p=&n;scanf(\b.p=&n;scanf(\c.scanf(\d.p=&n;*p=m;5.在C语言中,当引用数组元素时,其数组下标的数据类型允许为(C)。
a.整型常量b.整型表达式c.整型常量或整型表达式d.任何类型的表达式6.经过下列的语句intj,a[10],*p;定义后,下列语句中合法的是(a)。
a.p=p+2;b.p=a[5];c.p=a[2]+2;d.p=&(j+2);7.对于基本类型相同的两个指针变量,不能执行的操作为(c)。
a、 <b.=c.+d-8.inta[10];给数组a的所有元素分别赋值为1、2、3、……的语句是(b)。
a.for(i=1;i<11;i++)a[i]=i;b.for(i=1;i<11;i++)a[i-1]=i;c.for(i=1;i<11;i++)a[i+1]=i;d.for(i=1;i<11;i++)a[0]=1;9.设有数组定义:chararray[]=\则数组array所占的空间为(c)。
a.4个字节b.5个字节c.6个字节d.7个字节10.若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是(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语言上机考试题(第四套)
1.编写函数fun,它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。
例如若n为1000时,函数值应为:s = 153.909064。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数 fun的
花括号中填入你编写的若干语句。
试题程序:
#include <conio.h>
#include <math.h>
#include <stdio.h>
double fun( int n)
{
}
main() /*主函数 */
{ clrscr();
printf(″s=%f\n″, fun (1000) );
}
2.编程求出两个非零正整数的最大公约数.
3.请编写程序:根据以下公式求π(要求满足精度0.0005)的近似值:
π/2=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+……+(1*2*3*4*……
*n)/(3*5*7*……*(2n+1))
注意:第1题程序文件名请命名为prog1.cpp,第2题程序文件名请命名为prog2.cpp,第3题程序文件名请命名为prog3.cpp,对工程文件命名无要求。
文件请保持在d:\自己学号目录下面,比如学号为0701010101的学生,那么他交卷的时候在D:\0701010101目录下面,应该有prog1.cpp、prog2.cpp、prog3.cpp以及试卷文件,如果考试的时候,你把文件保存在其他目录,请把他们复制到你的考试目录下面,否者不能正确上传考试内容,工程文件可以不用上传。
第四套试题一、选择题(20个小题,每小题2分,共40分):1、以下不正确的C语言标识符是____。
A.ABC B.abc C.a_bc D.ab.c2、设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是____。
A.‘a’&&‘b’ B.a<=b C.a||b+c&&b-c D.!((a<b)&&!c||1) 3、若有以下定义和语句:char c1=‘b’,c2=‘e’;printf(“%d,%c\n”,c2-c1,c2-‘a’+‘A’);则输出结果是____。
A.2,M B.3,EC.2,e D.输入项与对应的格式控制不一致,输出结果不确定4、当运行以下程序时,在键盘上从第一列开始输入9876543210<CR>(此处<CR>代表Enter),则程序的输出结果是____。
main( ){ int a;float b,c;scanf(“%2d%3f%4f”,&a,&b,&c);printf(“\na=%d,b=%f,c=%f\n”,a,b,c);}A.a=98,b=765,c=4321 B.a=10,b=432,c=8765C.a=98,b=765.000000,c=4321.000000D.a=98,b=765.0,c=4321.05、设有如下函数定义:int f(char *s){ char *p=s;while(*p!=‘\0’) p++;return (p-s);}如果在主程序中用下面的语句调用上述函数,则输出结果为____。
printf(“%d\n”,f(“goodbye!”));A.3 B.6 C.8 D.06、以下程序的输出结果是____。
main( ){ int w=4,x=3,y=2,z=1;pr intf(“%d\n”,(w<x?w:z<y?z:x));}A.1 B.2 C.3 D.47、以下程序段的输出结果是____。
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本科目4试题及答案一、选择题(每题2分,共20分)1. 以下哪个选项是C语言中合法的变量名?A. 123abcB. intC. _myVarD. my-variable答案:C2. C语言中,用于定义一个整型变量的关键字是?A. intB. floatC. charD. double答案:A3. 在C语言中,表示逻辑“与”的运算符是?A. &&B. ||C. =D. ==答案:A4. 下列哪个函数用于计算数组中元素的总和?A. sum()B. count()C. average()D. max()答案:A5. 在C语言中,如何表示一个无返回值的函数?A. voidB. intC. charD. float答案:A6. C语言中,哪个关键字用于声明一个函数?A. functionB. defC. voidD. return答案:C7. 以下哪个选项是C语言中正确的注释方式?A. // 这是注释B. /* 这是注释 */C. <! 这是注释 -->D. <!-- 这是注释 -->答案:A8. 在C语言中,哪个运算符用于比较两个数是否相等?A. ==B. !=C. >D. <答案:A9. C语言中,用于定义一个浮点型变量的关键字是?A. intB. floatC. charD. double答案:B10. 在C语言中,哪个函数用于输出字符串到控制台?A. printf()B. scanf()C. coutD. cin答案:A二、填空题(每题2分,共20分)1. 在C语言中,用于定义一个字符型变量的关键字是______。
答案:char2. C语言中,用于定义一个双精度浮点型变量的关键字是______。
答案:double3. 在C语言中,用于定义一个布尔型变量的关键字是______。
答案:_Bool4. C语言中,用于定义一个字符串的关键字是______。
C语言期末考试试卷及答案4一、单项选择题 (本大题共20小题,每小题1分,共20分)1. 构成一个可执行的C程序的是A. 一个主函数和若干个非主函数B. 若干个主函数和若干个非主函数C. 一个主函数和最多一个非主函数 C. 若干个主函数和最多一个非主函数2. 下面那一个是合法的C语言标识符: ()A. abcB. longC. 4thD. a-33. 用十进制数表示表达式“12|012”的运算结果是()A. 1B. 0C. 14D. 124. 以下哪一个不是C语言合法的运算符()A. *B. &C. @D. +5. 按照结构化程序设计的概念,C语言程序设计的基本单位是( )A. 过程B. 函数C. 子程序D. 语句6. 下面哪个表达式的值为4. ( )A. 11/3B. 11.0/3C. (float)11/3D. (int)(11.0/3+0.5)7.下面C代码的输出结果是()int answer,result;answer=100;result=answer-10;printf(“The result is %d”, result+5);A. The result is 90B. The result is 95C. The result is 10D. The result is 1008. 设x和y均为int型变量,则执行下面的循环后,y的值为( )for(y=1,x=1;y<=50;y++){ if(x>=10)break;if(x%2==1){x+=5;continue;}x-=3;}A. 2.B. 4C. 6D. 89.有如下程序,输出结果是()main(){float x=4.0,y;if(x<0.0)y=0.0;else if(x<8.0) y=1.0/x;else y=1.0;printf(“%f\n”,y);}A. 0.000000B.0.250000C. 0.500000D. 1.00000010.合法的数组定义是()A. int a[]={“String”};B. int a[5]={0,1,2,3,4,5}C. char a={“String”};D. char a[]={0,1,2,3,4,5}11.语句printf(“%d\n”,strlen(“ats\n\\g”));的输出结果是()A. 5B. 6C. 7 D 8所占的字节数为:s则; ”}Good morning“char s[20]={.设有定义:12.A. 20B. 12C. 13D. 21( )13. C语言规定,函数返回值的类型由什么决定调用该函数时的主调函数类型B A return语句中的表达式类型在定义该函数时所指定的函数类型调用该函数时的形参类型 D C 语言中函数的隐含存储类型是14.C 无存储类型A. auto B. static C. extern D.的值,不正确的是:x和y15.以下函数的功能是交换funa(int *x,int *y) B. funb(int x,int y)A.{ int *p; { int t;*x;*x=*y;*y=*p;} t=x;x=y;y=t;}=*pfunc(int *x,int *y) D. fund(int *x,int *y)C.*x-*y; x=x=*x+*y;*y=*x-*y; *{ int p; { *p=*x;*x=*y;*y=p; }}的值为()后,z16.设有以下宏定义,则执行语句z=2*(N+Y(5+1));#define N 3#define Y(n) ((N+1)*n)B. 42C. 48D. 54 出错A.) 17.以下程序的输出结果是( #define ADD(x) (x)+(x)main(){ int a=4,b=6,c=7,d=ADD(a+b)*c;,d); }d=%d”“ printf( A d=70 B d=140 C d=280 D d=807}}; 则printf(“%d\n”int 句 struct {int x; y;} , 定18.设有义语d[0].y/d[0].x*d[1].x);的输出是()A. 0B. 1C. 3D. 619. 设int b[20]; 则对b数组元素的错误引用是:A. b[5]B. *(b+1)C. b[20%2]D. b(5)20.若文件型指针fp已指向某文件的末尾,则函数feof(fp)返回值是()A. 0B. –1C. 非零值D. NULL二、填空题 (本大题共10小题,每小题2分,共20分)1.若自定义函数要求返回一个值,则应在该函数体中有一条_______________语句,若自定义函数要求不返回值,则应该在定义该函数时的返回类型是__________________.2. 当a=3,b=4,c=5时,写出下列各式的值。
2023年9月青少年软件编程C语言等级考试试卷四级(含答案)分数:100题数:4一、编程题(共4题,共100分)第1题.酒鬼Santo刚刚与房东打赌赢得了一间在New Clondike的大客厅。
今天,他来到这个大客厅欣赏他的奖品。
房东摆出了一行瓶子在酒吧上。
瓶子里都装有不同体积的酒。
令Santo高兴的是,瓶子中的酒都有不同的味道。
房东说道:“你可以喝尽可能多的酒,但是一旦打开酒盖你就必须把它喝完,喝完一瓶后把它放回原处。
还有一件最重要的事,你必须从左至右依次喝,并且不能连续超过三瓶,不然会给你带来坏运气。
”现在可怜的Santo站在酒吧前努力的想着,他到底应该喝哪几瓶才能使喝的酒最多呢?请帮助他找出他应该喝的酒瓶号,因为思考让他感到不安。
时间限制:2000内存限制:131072输入:第一行一个整数N,有N个酒瓶,N<=700接下有N行,第I+1行的数字代表酒瓶I中酒的体积。
输出:一个数字,喝的酒的最大总体积,遵守以上规则,使得三个连续瓶子中至少一个瓶子是满的。
样例输入:661013981样例输出:33参考答案:#include<bits/stdc++.h>using namespace std;int f[701][5];int main(){int n;int a[1000];cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<=n;i++){f[i][0]=f[i-1][3];int mx=f[i][0];for(int j=1;j<=2;j++){f[i][j]=f[i-1][j-1]+a[i];mx=max(mx,f[i][j]);}f[i][3]=mx;}cout<<f[n][3];}第2题.大盗阿福阿福是一名经验丰富的大盗,趁着月黑风高,阿福打算今晚洗劫一条街上的店铺。
第四套若有说明:int a[3][4];则数组a中各元素()。
A、不能得到确定的初值B、可在程序的编译阶段得到初值0C、可在程序的运行阶段得到初值0D、可在程序的编译或运行阶段得到初值0【参考答案】错误A【学生答案】[未答此题]已定义float a; int i;选择正确的输入语句( ).A、scanf("%6.2f%3d", &a,&i);B、scanf("%f%s", &a,&i);C、scanf("%6f%3d",&a,&i);D、scanf("%f%d", a,i);【参考答案】错误C【学生答案】[未答此题]执行下面程序段后,k的值是:( )int k=2;switch(k+1){case 3:k+=1;case 4:k--;break;case 5:k*=3;case 6:++k;}A、10B、2C、28D、27【参考答案】错误B【学生答案】[未答此题]执行下列语句后的输出为()。
int j=-1;if(j<=1) printf("****\n");else printf("%%%%\n");A、%%%%B、****C、有错,执行不正确D、%%%%c【参考答案】错误B【学生答案】[未答此题]以下程序段中,能够正确地执行循环的是( )。
A、int s=6; m:if(s<100) exit(0); else s-=2; goto m:B、int s=6; do s-=2; while(s);C、for(i=1;i>10;i++)D、static int a; while(a)【参考答案】错误B【学生答案】[未答此题]运行结果是" 11 12"的程序段是:请在A处填写正确内容( )。
for(i=1;i<=2;i++)___A___A、for(j=1;j<=2;j++)printf("%3d",10*i+j);break;B、{for(j=1;j<=2;j++)printf("%3d",10*i+j);break;}C、for(j=1;j<=2;j++)printf("%3d",10*i+j);continue;D、{for(j=1;j<=2;j++)printf("%3d",10*i+j);continue;}【参考答案】错误B【学生答案】[未答此题]对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是()。
山东建筑大学C语言程序设计试题第4套C语言程序设计试题(第4套)(已删除考试范围之外的题目)一、单项选择题(30分,每题2分)1.C语言中定义的变量只能由字母、数字和下划线三种字符组成,且第一个字符_______。
A、必须为字母或下划线。
B、必须为下划线。
C、必须为字母D、可以是字母、数字或下划线。
2.下面4种说法,正确的是______。
A、C语言中,关系运算符有多个,其中的几个是<、>、=、!=。
B、C语言提供的三种逻辑运算符都是双目运算符。
C、C语言中不允许出现goto语句。
D、一般情况下,do-while循环和while循环可以互相代替,即都可以用来处理同一问题。
3. C语言源程序的基本单位是______。
A、语句B、对象C、函数D、过程4. 下列选项中,不能用作标识符的是_______。
A、_1234_B、_1_2C、int_2_D、2_int_5. 能正确表示逻辑关系:“a≥10或a ≤0”的C语言表达式是_______。
A、a≥10&& a≤0 B、a≥10‖a≤0C、a>=10 &&a<=0D、a>=10‖a<=06. 若有定义:int a=8,b=5,c; ,则执行语句c=a/b+0.4; 后,c的值为_______。
A、1.4B、1C、2.0D、27.有以下程序段int m=0,n=0; char c='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是_______。
A、10,A,10B、10,a,10C、10,a,0D、10,A,08. 当a=5,b=3,c=2时,执行下面一段程序后,x的值为_______。
A、1B、 2C、6D、8if(a<b){ if(b<c) x=1;else x=2;}else{ if(b<c) x=6;else x=8;}9.若有i=8; 执行下列程序段后,变量i的值是_______。
C语言第四套题一、选择题1、下列数据结构中,属于非线性结构的是()。
A) 循环队列B) 带链队列C) 二叉树D) 带链栈参考答案:C【解析】树是简单的非线性结构,所以二叉树作为树的一种也是一种非线性结构。
2、下列数据结构中,能够按照"先进后出"原则存取数据的是()。
A) 循环队列B) 栈C) 队列D) 二叉树参考答案:B【解析】栈是按先进后出的原则组织数据的。
队列是先进先出的原则组织数据3、对于循环队列,下列叙述中正确的是()。
A) 队头指针是固定不变的B) 队头指针一定大于队尾指针C) 队头指针一定小于队尾指针D) 队头指针可以大于队尾指针,也可以小于队尾指针参考答案:D【解析】循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。
因为是循环利用的队列结构所以对头指针有时可能大于队尾指针有时也可能小于队尾指针。
4、算法的空间复杂度是指()。
A) 算法在执行过程中所需要的计算机存储空间B) 算法所处理的数据量C) 算法程序中的语句或指令条数D) 算法在执行过程中所需要的临时工作单元数参考答案:A【解析】算法的空间复杂度是指算法在执行过程中所需要的内存空间。
所以选择A)。
5、软件设计中划分模块的一个准则是()。
A) 低内聚低耦合B) 高内聚低耦合C) 低内聚高耦合D) 高内聚高耦合参考答案:B【解析】一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
6、下列选项中不属于结构化程序设计原则的是()。
A) 可封装B) 自顶向下C) 模块化D) 逐步求精参考答案:A【解析】结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A)。
7、软件详细设计生产的图如下:该图是()A) N-S图B) PAD图C) 程序流程图D) E-R图参考答案:C【解析】N-S图提出了用方框图来代替传统的程序流程图,所以A)不对。
第四套一、判断题第1题:只有在使用时才为该类型变量分配内存的存储类说明是auto和static (错)第2题:在标准C语言中,枚举元素作为常量,它们是有确定的值的,它们的值按顺序从0开始依次增加且不可以改变。
参考答案:错第3题:在C语言中,合法的长整型常数是216D 。
参考答案:错第4题:在标准C中,语句必须以“;”结束。
参考答案:对第5题:定义char *string=”string?”是将字符串的值赋给指针变量string。
参考答案:错第6题:函数调用在main之后出现必须先定义后使用。
参考答案:对第7题:在C语言中,存储一个汉字的国标码所需要的字节数为2 。
参考答案:对第8题:在标准C语言中,共用体变量中的各成员可以分布在不同的存储空间中。
(错)第9题:在标准C中,所有关系运算符的优先级都相同。
参考答案:错第10题:C语言中的文本文件以ASCII码形式存储数据。
参考答案:对二、选择题(请选择正确的选项)第1题:当a=1,b=3,c=5,d=4时,执行下面语句后,x的值为if(a<b)if(c<d) x=1; elseif(a<c)if(b<d)x=2;else x=3;else x=6;else x=7; 参考答案:BA、1B、2C、3D、6第2题:若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feof(fp)的返回值是参考答案:BA、EOFB、1C、非D、NULL第3题:下面程序段的运行结果是:int n=0; while(n++<=2); printf("%d",n) 参考答案:C A、2 B、3 C、4 D、有语法错第4题:C语言规定,函数返回值的类型是由参考答案:D A、return语句中的表达式类型所决定B、调用该函数时的主函数类型所决定C、调用该函数时系统临时决定D、在定义该函数时所指定的函数类型所决定第5题:下面程序的输出是#include "stdio.h"#include "string.h"main(){char s[ ]="Hangzhou China";printf("%d,%d\n",sizeof(s),strlen(s));} 参考答案:AA、15,14B、15,15C、14,14D、14,15第6题:循环for(i=1,j=6; ++i!=--j; ) s=i+j; 将执行参考答案:DA、2次B、3次C、4次D、以上均不是第7题:在函数间传递数据的四种方式中,不能把被调函数的数据带回到主调函数的是参考答案:A A、值传递B、地址传递C、返回值传递D、全局外部变量第8题:若x是整型变量,pb是整型指针变量,则正确的赋值表达式是参考答案:A A、pb=&x B、pb=x; C、*pb=&x; D、*pb=*x第9题:表示关系x≤y≤z的c语言表达式为参考答案:AA、(x<=y)&&(y<=z)B、(x<=y)and(y<=z)C、(x<=y<=z)D、(x<=y)&(y<=z)第10题:一个C语言程序是由参考答案:B A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成三、填空题(请把正确的选项填入试题前的空格中)第1题:2、下列程序利用函数求两个数的最大值,请在____处补上必要的代码:_____;main(){float a,b,c;scanf("%f,%f",&a,&b);c = max (a,b);printf("max = %f\n",c);}float max(float x, float y){float z;_____;return(z) ;}参考答案:float max(float,float)参考答案:z = x>y ? X : y第2题:读入一批正整数(以零或负数为结束标志),输出其中的素数。