《C语言程序设计》模拟题2及答案
- 格式:doc
- 大小:116.00 KB
- 文档页数:13
国家开放大学电大《C语言程序设计》网络课形考任务2作业及答案形考任务2一、选择题(共20分,每小题2分)题目1当处理特定问题时的循环次数已知时,通常采用的语句是()。
选择一项:a. for题目2在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是()。
选择一项:b. if题目3for语句能够被改写成的语句是()。
选择一项:d. while题目4下面循环语句执行结束后输出的i值为()。
for(int i=0; i<n; i++) if(i>n/2) {cout<<i<<endl; break;}选择一项:b. n/2+1题目5在下面循环语句中,内层循环体S语句的执行总次数为()。
for(int i=0; i<n; i++)for(int j=i; j<n; j++) S;选择一项:d. n(n+1)/2题目6在下面的do循环语句中,其循环体被执行的次数为()。
int i=0; do i++; while(i*i<10);选择一项:a. 4题目7在下面的一维数组定义中,有语法错误的选项是()。
c. int a[];题目8在下面的二维数组定义中,语法正确的选项是()。
选择一项:c. int a[][3]={{1,3,5},{2}};题目9假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][1]的值为()。
选择一项:d. 8题目10假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为()。
选择一项:a. 0二、判断题(共20分,每小题1分。
叙述正确则回答“是”,否则回答“否”)题目11在执行“typedef int DataType;”语句后,标识符DataType与保留字int具有完全相同的含义和作用。
大学计算机专业《C语言程序设计》期中试卷及答案试卷编号:9689所属语言:C语言试卷方案:期中考试试卷总分:100分共有题型:5种一、填空共15题(共计15分)第1题(1.0分)题号:92C语言中的字符变量用保留字【1】来说明.答案:=======(答案1)=======char第2题(1.0分)题号:433已知x=3,y=2,则表达式x*=y+8的值为【1】.答案:=======(答案1)=======30第3题(1.0分)题号:388设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为【1】.答案:=======(答案1)=======1.0=========或=========1第4题(1.0分)题号:293getchar()函数只能接收一个【1】.答案:=======(答案1)=======字符第5题(1.0分)题号:437以下程序的输出结果为【1】,#include "stdio.h" main(){int a=010,j=10;printf("%d,%d\n",++a,j--);} 答案:=======(答案1)=======9,10第6题(1.0分)题号:498c语言程序的三种基本结构是:顺序结构,选择结构,【1】结构.答案:=======(答案1)=======循环第7题(1.0分)题号:100已知a=13,b=6, a||b的十进制数值为【1】.答案:=======(答案1)=======1第8题(1.0分)题号:441设a=3,b=4,c=4,则表达式a+b>c&&b==c&&a||b+c&&b==c的值为【1】.答案:=======(答案1)=======1第9题(1.0分)题号:457设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&&b+c/2后,t的值是【1】.答案:=======(答案1)=======1第10题(1.0分)题号:389设i,j,k均为int型变量,则执行完for循环for(i=0,j=10;i<=j;i++,j--) k=i+j;后,k的值为【1】.答案:=======(答案1)=======10第11题(1.0分)题号:421若输入字符串:abcde<回车>,则以下while循环体将执行【1】次.While((ch=getchar())=='e') printf("*");答案:=======(答案1)=======第12题(1.0分)题号:533设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是【1】. for (x=0,y=0;y!=123&&x<3;x++)scanf ("%d",&y);答案:=======(答案1)=======3第13题(1.0分)题号:328C语言中,数组元素的下标下限为【1】.答案:=======(答案1)=======第14题(1.0分)题号:346合并字符串的库函数是【1】,只写函数名即可.答案:=======(答案1)=======strcat第15题(1.0分)题号:341定义int a[2][3];表示数组a中的元素个数是【1】个.答案:=======(答案1)=======6二、判断共15题(共计15分)第1题(1.0分)题号:715整数 -32100可以赋值给int型和long int型变量.答案:Y第2题(1.0分)题号:929在C语言中,5种基本数据类型的存储空间长度的排列顺序为:char<int<long int <=float<double答案:Y第3题(1.0分)题号:928C程序中的关键字必须小写.答案:Y第4题(1.0分)题号:194若有定义和语句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通过键盘输入:10,A,12.5,则a=10,c='A',f=12.5.答案:Y第5题(1.0分)题号:944C语言中,赋值表达式加上分号就构成了赋值语句.答案:Y第6题(1.0分)题号:716若i =3,则printf("%d",-i++);输出的值为 -4.答案:N第7题(1.0分)题号:950逻辑运算符中的"&&"和"||"低于关系运算符,"!"高于算术运算符.答案:Y第8题(1.0分)题号:951在执行switch语句时,default和各个case的出现次序不影响执行结果.答案:Y第9题(1.0分)题号:869若有int i=10, j=0;则执行完语句if (j=0)i++; else i--; i的值为11.答案:N第10题(1.0分)题号:953C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.答案:N第11题(1.0分)题号:742若有说明int c;则while(c=getchar());是正确的C语句.答案:Y第12题(1.0分)题号:954continue语句只结束本次循环,而不是终止整个循环的执行.break语句则是结束整个循环过程,不再判断执行循环的条件是否成立.答案:Y第13题(1.0分)题号:736int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列的元素赋初值,其余元素值为0.答案:Y第14题(1.0分)题号:735如果想使一个数组中全部元素的值为0,可以写成int a[10]={0*10};答案:N第15题(1.0分)题号:926任何数组的下标都是从0开始;答案:Y三、单项选择共20题(共计40分)第1题(2.0分)题号:2004下列字符序列中,不可用作C语言标识符的是().A:b70B:#abC:symbolD:a_1答案:B第2题(2.0分)题号:2137下列表达式中,可作为C合法表达式的是().A:[3,2,1,0]B:(3,2,1,0)C:3=2=1=0D:3/2/1/0答案:B第3题(2.0分)题号:2037若k,g均为int型变量,则下列语句的输出为().k=017; g=111; printf("%d\t",++k); printf("%x\n",g++);A:15 6fB:16 70C:15 71D:16 6f答案:D第4题(2.0分)题号:2043已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为(). char a='a'; a--;printf("%d,%c\n",a+'2'-'0',a+'3'-'0');A:b,cB:a--运算不合法,故有语法错C:98,cD:格式描述和输出项不匹配,输出无定值答案:C第5题(2.0分)题号:2128下列程序段的输出结果为().float x=213.82631;printf("%3d",(int)x);A:213.82B:213.83C:213D:3.8答案:C第6题(2.0分)题号:2222语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是(说明:'\b'是退格符)().A:a\bre\'hi\'y\\\bouB:a\bre\'hi\'y\bouC:re'hi'youD:abre'hi'y\bou答案:C第7题(2.0分)题号:2028假设所有变量均为整型,表达式:a=2,b=5,a>b?a++:b++,a+b的值是().A:7B:8C:9D:2答案:B第8题(2.0分)题号:2145int a=3,b=2,c=1;if(a>b>c)a=b;else a=c;则a的值为().A:3B:2C:1D:0答案:C第9题(2.0分)题号:2062假定所有变量均已正确定义,下列程序段运行后x的值是().k1=1;k2=2;k3=3;x=15;if(!k1) x--;else if(k2) x=4;else x=3;A:14B:4C:15D:3答案:B第10题(2.0分)题号:2136下列程序段的输出结果为().int a=7,b=9,t;t=a*=a>b?a:b;printf("%d",t);A:7B:9C:63D:49答案:C第11题(2.0分)题号:2319在C语言中,要求运算数必须是整型的运算符是(). A:^B:%C:!D:>答案:B第12题(2.0分)题号:2251以下不是无限循环的语句为().A:for(y=0,x=1;x>++y;x=i++) i=x;B:for(;;x++=i);C:while(1){x++;}D:for(i=10;;i--) sum+=i;答案:A第13题(2.0分)题号:2123设j和k都是int类型,则for循环语句().for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k); A:最多执行10次B:最多执行9次C:是无限循环D:循环体一次也不执行答案:A第14题(2.0分)题号:2141以下程序段的输出结果为().for(i=4;i>1;i--)for(j=1;j<i;j++)putchar('#');A:无B:######C:#D:###答案:B第15题(2.0分)题号:2059以下程序的运行结果是().main(){ int n;for(n=1;n<=10;n++){if(n%3==0) continue;printf("%d",n);}}A:12457810B:369C:12D:1234567890答案:A第16题(2.0分)题号:2147while(fabs(t)<1e-5)if(!(s/10))break;循环结束的条件是(). A:t>=1e-5||t<=-1e-5||s>-10&&s<10B:fabs(t)<1e-5&&!s/10C:fabs(t)<1e-5D:s/10==0答案:A第17题(2.0分)题号:2273设有数组定义: char array [ ]="China"; 则数组 array所占的空间为().A:4个字节B:5个字节C:6个字节D:7个字节答案:C第18题(2.0分)题号:2280若有说明 int a[3][4];则对a数组元素的正确引用是().A:a[2][4]B:a[1,3]C:a[1+1][0]D:a(2)(1)答案:C第19题(2.0分)题号:2269以下不正确的定义语句是().A:double x[5]={2.0,4.0,6.0,8.0,10.0};B:int y[5]={0,1,3,5,7,9};C:char c1[]={'1','2','3','4','5'};D:char c2[]={'\x10','\xa','\x8'};答案:B第20题(2.0分)题号:2074下列语句中,不正确的是().A:static char a[2]={1,2};B:static int a[2]={'1','2'};C:static char a[2]={'1','2','3'};D:static char a[2]={'1'};答案:C四、程序填空共4题(共计24分)第1题(6.0分)题号:24/*------------------------------------------------------- 【程序填空】---------------------------------------------------------题目:以下程序的功能是对任一整数N(N≠0),它都可以分解成1(或-1)和一些质数(素数)因子的形式。
c语言程序设计教程(第2版)课后题及模拟题参考答案习题11-1 填空题1.函数2.主函数main(),主函数main()3.主函数main()4.函数首部,函数体5.{, }6./*, */7.顺序结构,选择结构,循环结构8..c, .obj, .exe1-2 思考题1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。
其基本结构包括顺序结构、选择结构和循环结构三种。
2.算法是对具体问题求解步骤的一种描述。
计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。
1-3 编程题1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。
#include "stdio.h"main(){ float a, b, h, s;a=10; b=20;h=5; s=(a+b)*h/2;printf("s=%f\n" , s );}2. 编写程序显示如图1.11所示信息。
图1.11 显示信息#include "stdio.h"main(){ printf("******************************\n");printf("* hello world *\n");printf("******************************\n"); }习题22-1 单选题1~5 DBDCA 6~10 DCABA 11~12 CA 2-2 思考题1.2.0000002.1,0.53.9,24.65.100,d6.(1)20 (2)0 (3)607. (1)10,6,4 (2)6,9,15 (3)3,60,838. 55习题33-1 选择题1-5BDABC 6-10ADCAC 11-12BB3-2 填空题1. 32.02613.0x104. 2, 1 互换a,b的值5. 6.66.–0038.77. 5.0,4,c=3<Enter>8.i=10,j=20<Enter>9.(1) 65(2) 65,A(3) 56.123400,123.456001(4) 3.141600(5) 8765.432(6) 5.864000e+002(7) 3.141600e+000(8) 3.1416(9) 8765(10) 3.1416,8765.4310.a=2 b=5x=8.8 y=76.34c1=65 c2=973-3 编程题1. 编写程序实现从键盘输入两个十进制整型数据10和8给变量x和y,并按下列格式 输出。
计算机等级《二级C语言程序设计》模拟题计算机等级《二级C语言程序设计》模拟题1.【单选题】2分| 有定义:“inta=2,b=3,c=4;”,则下列选项中值为0的表达式是()。
A (!a==1)&&(!b==0)B (aC a&&bD a||(b+b)&&(c-a)2.【单选题】2分| 执行下面的程序后,a的值为()。
main(){inta,b;for(a=1,b=1;a=10;a++){if(b%3==l){b+=3;continue;}b-=5;}}A 7B 8C 9D 103.【单选题】2分| 若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是()。
A EOFB -lC 非零值D 04.【单选题】2分| 有以下程序:main(){inta=0,b=0;a=10;/*给a赋值b=20;给b赋值*/printf("a+b=%d\n",a+b);//输出计算机结果}程序运行后的输出结果是()。
A a+b=10B a+b=30C 30D 出错5.【单选题】2分| 以下程序的输出结果是()。
main(){inta=3:printf("%d\n",(a+a-=a*a));}A -6B 12C 0D -126.【单选题】2分| 执行下列程序中的输出语句后,a的值是()。
main(){inta;printf("%d\n",(a=2*3,a*5,a+7));}A 17B 37C 6D 137.【单选题】2分| 下列关于栈的描述中错误的是()。
A 栈是先进先出的线性表B 栈只能顺序存储C 栈具有记忆作用D 对栈的插入删除操作中,不需要改变栈底指针8.【单选题】2分| 函数调用strcat(strcpy(str1,str2),str3)的功能是()。
A 将字符串str1复制到字符串str2中后再连接到字符串str3之后B 将字符串str1连接到字符串str2之后再复制到字符串str3之后C 将字符串str2复制到字符串str1之后再将字符串str3连接到字符串str1之后D 将字符串str2连接到字符串str1之后再将字符串strl复制到字符串str3中9.【单选题】2分| 对两个数组a和b进行下列初始化:charm[]1="l234567":charn[]={'1','2','3','4','5','6','7');则下列叙述正确的是()。
一、填空题(本题每空1分,共计15分)1.设int a = 2,b = 3;float x = 3.5,y =2.5;表达式(float)(a+b)/2+(int)x%(int)y的值为3.5 。
2.结构化程序设计的三种基本结构是顺序结构,选择结构,循环结构。
3.设a = 3 , b = 2 , c = 1 , 则!(a+b)+c-6&&c+b%2的值为 1 。
4.int a = 6 ; 若a *= 2+3,则a = 30 ;又若a /= a+a,则a = 0 ;又若a+=a-= a*=a,则a = 0 ;5.int a = 2 ,b ,c ; b = ++a ; c = (a++)+(b++) ; 则c = 6 ,a = 4 ,b = 46、判断char型变量ch是否为大写字母的正确表达式是:ch>=’A’&&ch<=’z’7、若a=1;b= 2;c=2; if(a<b<c) {t= a;a=b; b=t; c--;}则a= 2 ,b= 1 ,c= 1 ,二、选择题(本题有15个小题,每小题2分,共计30分,每题只有一个正确答案)1、C程序的执行是从(A)A)本程序的main函数开始,到main函数结束B)本程序文件的第-个函数开始,到本程序文件的最后-个函数结束C)本程序的main函数开始,到本程序文件的最后-个函数结束D)本程序文件的第-个函数开始,到本程序main函数结束2、若有说明:char *language[]={"FORTRAN","BASIC","PASCAL", "JA V A","C"};则以下不正确的叙述是(D)。
A)language+2表示字符串"PASCAL"的首地址B)*language[2」的值是字母PC)language是一个字符型指针数组,它包含5个元素,D)每个元素都是一个指向字符串变量的指针3、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值为(B):A)7 B)8 C)6 D)24、下面四个选项中,均是不合法的用户标识符的选项是(C)A) A P_0 doB)float a0 _AC)b-a goto intD)-123 temp INT5、sizeof(float)是(B):A)一个双精度型表达式B) 一个整型表达式C) 一种函数调用D) 一个不合法的表达式6、设有说明:char w; int x; f1oat y; double z;则表达式w* x+z-y值的数据类型为(D):A)float B)char C)int D)double7、阅读下程序,若运行结果为如下形式,输入输出语句的正确内容是(B): main(){int x; float y; printf("enter x,y:")输入语句输出语句}输入形式enter x,y: 2 3.4输出形式x+y=5.40A)scanf("%d,%f",&x,&y);printf("\nx+y= %4.2f",x+y);B)scanf("%d%f",&x,&y );printf("\nx+y=%4.2f",x+y);C)scanf("%d%f",&x,&y); printf("\nx+y=%6.lf",x+y);D)scanf("%d%3.1f",&x,&y );printf("\nx+y=%4.2f",x+y);8、根据下面的走义,能打印出字母M的语句是(D)struct person{char name[9];int age;}struct person class[10]={"John",17,"Paul",19,"Mary",18,"adam",16 };A)printf("%c\n",class[3].name);B)printf("%c\n",class[3].name[1]);C)printf("%c\n",class[2].name[1]);D)printf("%c\n",class[2].name[0]);9、若有以下定义和语句:struct student{int age;int num;};struct student stu[3]={{1001,20},{1002,19},{1003,21}};main(){struct student *p;p=stu;...}则以下不正确的引用是(D)。
《C语言程序设计》期末笔模拟试卷(本试卷满分60分)院系学号姓名1. 答案均写在答题纸上,写在卷面上无效;2. 答题结束后将试卷及答题纸全部交给监考教师;一、单选题 (1分×16,共16分)1. 下面 (1) 是正确的局部数组声明CA. char a[][5]={“math”,“phy”,“chemi” };B. int b[3][3]={{1,2,3},4,5,6,7,{8,9}};C. float c[sizeof(sin(1))]={1,‘\n’};D. char ch[ ][10]={“Beijing”,“Nanjing”},*p[ ]={ ch[0],ch[1] };2. 如下哪个程序语法、语义都正确,且能获得正确的运行结果(2) A3. 若有声明:enum d{ e,s,w,n}c=s;则表达式“ops”+ c值的类型是 (3) 。
B A. enum d B. char * C. int D. int *4. 下列叙述中除 (4) 之外都是正确的。
BA.引用函数说明中指定的形参名,不必与函数定义中对应的形参名相同。
B.不能用extern定义一个外部变量、数组。
C. 无论在函数外还是在函数内说明引用本程序中定义的函数,都可不写extern关键字。
D.用extern说明引用一个外部数组时,可以不给出数组大小。
5. 下列能正确执行的程序是: (5) A6. 对于二维数组定义: int a[i][j]; (i、j均为常量),且有:0≤m<i,0≤n<j , 则下列除 (6) 外,都是不等价的。
BA. a+m 与 a[0]+mB. a+m 与 *(a+m)C. *(a+m) 与 *a[m]D. *a 与 *a[0]7. 若程序中有声明:“float a,b[3][4];”与引用函数的说明:“int fun(floatk[][3]),int n);”则下列 (7) 都是常量或常量表达式。
江南大学网络教育第二阶段练习题考试科目:《C语言程序设计》第章至第章(总分100分)__________学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一单选题 (共20题,总分值40分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。
)1. 下述对C语言字符数组的描述中错误的是()。
(2 分)A. 字符数组可以存放字符串B. 字符数组的字符串可以整体输入、输出C. 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值D. 不可以用关系运算符对字符数组中的字符串进行比较2. 有以下程序void f(int v , int w){ int t;t=v;v=w;w=t;}main( ){ int x=1,y=3,z=2;if(x>y) f(x,y);else if(y>z) f(y,z);else f(x,z);printf(“%d,%d,%d\n”,x,y,z);}执行后输出结果是()。
(2 分)A. 1,2,3B. 3,1,2C. 1,3,2D. 2,3,13. 有语句char str1[10],str2[10]={"books"};则能将字符串books赋给数组str1的正确语句是()。
(2 分)A. str1={"Books"};B. strcpy(str1,str2);C. str1=str2;D. strcpy(str2,str1);4. 若有变量说明:char s,s1[20];执行语句:s="student";s1=s;正确的叙述是()。
(2 分)A. 二个语句都不正确B. s所指向的字符串和s1的值都是"student"C. 第一个语句正确,而第二个语句不正确D. 第二个语句正确,而第一个语句不正确5. C语言的编译系统对宏命令是()时候处理的。
c语言程序设计第2版习题答案1. 基础语法练习题- 题目:编写一个程序,计算并输出1到10的和。
- 答案:使用一个循环结构,累加1到10的数值。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 10; ++i) {sum += i;}printf("The sum from 1 to 10 is: %d\n", sum);return 0;}```2. 数组和字符串练习题- 题目:编写一个程序,找出一个字符串中出现次数最多的字符,并输出它。
- 答案:使用数组来统计每个字符的出现次数,然后找出最大值。
```c#include <stdio.h>#include <string.h>int main() {char str[] = "example string";int maxCount = 0;char maxChar = str[0];int charCount[256] = {0};for (int i = 0; str[i] != '\0'; ++i) {charCount[(int)str[i]]++;if (charCount[(int)str[i]] > maxCount) { maxCount = charCount[(int)str[i]];maxChar = str[i];}}printf("The most frequent character is: %c\n", maxChar);return 0;}```3. 函数和指针练习题- 题目:编写一个函数,交换两个整数的值。
- 答案:使用指针来实现参数的传递。
```c#include <stdio.h>void swap(int *x, int *y) {int temp = *x;*x = *y;*y = temp;}int main() {int a = 5, b = 10;printf("Before swap: a = %d, b = %d\n", a, b);swap(&a, &b);printf("After swap: a = %d, b = %d\n", a, b);return 0;}```4. 结构体和文件操作练习题- 题目:定义一个结构体,包含学生姓名、学号和成绩,编写程序,将学生信息存储到文件中。
C语言程序设计模拟题二 一、选择题 1. _______是构成C语言程序的基本单位。 A) 函数 B) 过程 c) 子程序 D) 子例程 2.可以在C语言中用做用户标识符的是_______。 A)void B)as_b3 C)for D)2c define _123 -abc Do WORD If cas SIG 3.若有以下类型说明语句: char w;int x;float y,z; 则表达式w*x+z-y的结果为________类型。 A) float B)char C)int D)double 4. main() { float x=123.456; printf("%-5.2f\n",x); } 以上程序输出的结果是________。 A) 123.4 B)123.5 C)123.45 D)123.46 5.下面语句的输出结果是________。 Printf("%d\n",strlen("\t\"\065\xff\n")); A) 14 B)8 C) 5 D) 输出项不合法,无正常输出 6.下列程序的输出结果是________。 main() { int a=0,b=0,c=0; if(++a>0||++b>0)++c; printf("\na=%d,b=%d,c=%d",a,b,c); } A)a=0,b=0,c=0 B)a=l,b=l,c=1 C)a=l,b=O, c=I D)a=0, b=1.c=1 7.下列程序的输出结果是_________。 Main() { int i; for(i=1;i+l;i++) { if(i>4){printlf("%d",i++);break;} } printf("%d",i++); } A) 55 B) 56 c) 程序错误,没有输出 D) 循环条件永远为真,死循环 8.下列程序的输出结果是_________。 #define A 100 main() { int i=O,sum=O; do{ if(I==(i/2)*2)continue; sum+=i; }while(++iprintf("%d\n",sum); } A)2500 B)2550 C)4 D)O 9.下列程序的输出结果是_________。 main() { int I=3; switch(i) { case 1: case 2:printf("%d",i); case 3: case 4:break; default:printf("OK"); } } A)0 B)3 C)OK D)没有任何输出 10.下列程序执行后的输出结果是________。 main() { int m[][3]={1,4,7,2,5,8,3,6,9}; int i,k=2: for(I=0;i<3;i++) { printf("%d",m[k][i]);} } A)456 B)258 C)369 D)789 11.设已定义k为int类型变量,则以下for循环语句_________。 for(i=0;k=-1,k=1;i++,k++) printf("****\n"); A)判断循环结束的条件不合法 B)是无限循环 C)循环一次也不执行 D)循环只执行一次 12 C语言函数返回值的类型是由__________决定的。 A)return语句中的表达式类型 B)调用函数的主调函数类型 c)调用函数时临时 D)定义函数时所指定的函数类型 13.下列程序执行后输出的结果是___________。 int d=l: fun(int p) { int d=5; d+=p++; printf("%d,",d); } main() { int a=3; fun(a); d+=a++: printf("%d\n",d); } A)8,12 B)9,13 C)8,4 D)9,5 14. 定义int *swap()指的是_______。 A) 一个返回整型值的函数swap() B)一个返回指向整型值指针的函数swap() C) 一个指向函数swap()的指针,函数返回一个整型值 D) 以上说法均错 15.以下程序段的输出结果是__________。 main() { char s1[10],s2[10],s3[10]; scanf("%s",s1);gets(s2);gets(s3); puts(s1);puts(s2);puts(s3); } 输入数据如下: (此处代表回车符) aaa bbb A)aaa B)aaa C)aaa\0bbb\0 D)aaabbb bbb bbb bbb 16. 下述函数功能是________。 int fun(char*x) { char*y=x; while(*y++); return y-x-l; } A)求字符串的长度 B)求字符串存放的位置 C)比较两个字符串的大小 D)将字符串x连接到字符串y后面 17.以下程序的输出结果是_________。 main() { char str[12]={'s','t','r','i','n',' g'}; printf("%d\n",strlen(str)); } A)6 B)7 C)ll D)12 18.请读程序段: char str[]="ABCD",*p=str; printf("%d\n",*(p+4)); 程序段的输出结果是_________。 A)68 B)0 C)字符'D'的地址 D)不确定的值 19.若有定义:int a[4][10];,则以下选项中对数组元素a[i][j]引用错误的是________。 (0<=i<4,0<=j<10) A)*(&a[O][O]+10*i+j) B)*(a+i)+j C)*(*(a+i)+j) D)*(a[i]+j) 20.请读程序: #include #include main() { char*sl="AbCdEf",*s2="aB"; s1++;s2++; printf("%d\n",strcmp(s1,s2)); } 上面程序的输出结果是___________。 A)正数 B)负数 C)零 D)不确定的值 21.下面程序的输出是_________。 char s[]="ABCD"; main() { char*p; for(p=s;pprintf("%s\n",p); } A)ABCD B)A C)D D)ABCD BCD B C ABC CD C B AB D D A A 22.以下程序输出的结果为__________。 main() { char* alpha[6]={"ABCD",EFGH","IJKL","MNOP","QRST","UVwX"}; char**p; int i: p=alpha; for(I=0;i<4;i++) printf("%s",p[I]); } A) ABCDEFGHIJKL B) ABCD C) ABCDEFGHIJKLMNOP D)AEIM 23.若一个外部变量的定义形式为static int x;,那么,其中static的作用应该是_______。 A) 将变量存储在静态存储区 B) 使变量x可以由系统自动初始化 c) 使x只能在本文件内引用 D) 使x的值可以永久保留 24.下面是对宏定义的描述,不正确的是_______。 A)宏不存在类型问题,宏名无类型,它的参数也无类型 B)宏替换不占用运行时间 C)宏替换时先求出实参表达式的值,然后代入形参运算求值 D)宏替换只不过是字符替代而已 25.若有如下说明,则__________的叙述是正确的。 struct st { int a; int b[2l; ]a; A) 结构体变量a与结构体成员a同名,定义是非法的 B) 程序只在执行到该定义时才为结构体st分配存储单元 c) 程序运行时为结构体st分配6个字节存储单元 D) 类型名struct st可以通过extern关键字提前引用(即引用在前,说明在后) 26.若有以下结构体定义,则________是正确的引用或定义。 struct example { int x; int y; }v1; A)example.x=10 B)example v2.x=10 C)struct v2;v2.x=lO D)struct example v2={10}; 27.下列程序的执行结果是_________。 #include union un { int i; char c[2]; ]; void main() { union un x; x.c[0]=10:
一、1.下面四个选项中,均是c语言关键字的选项是()A)INT while B)switch sqrtC)unsigned union D)if type2.若以下选项中的变量已正确定义,则正确的赋值语句是()A) a=3.5 B) a=3+2=5 C) a=3.5%2 D) 3+5=a3.以下运算符中,运算对象必须是整型数据的是()A) / B) % C) != D) >=4.以下程序段中与语句f=a>b?1:0;功能等价的是()A) if(a>b) f=1;B) if(a>b) f=1;else f=0;C) if(a>b) a=1;else b=0;D) 语法错误5.设有定义char a,*p=&a;以下不能正确为变量a读入数据的是( )A)scanf("%c", p); B)scanf("%c",&a);C)scanf("%c", a); D) a=getchar();6.下面程序中,while循环执行次数是( )int main(){int i=5;while(i=0) i--;printf("%d",i);return 0;}A) 0次 B) 1次 C) 5次 D)无穷多次7. 语句while(x) {……}; 中的条件表达式 x 等价于()A)x!=0 B)x=0 C)x==0 D)语法错误8.有定义:int x,y;,若要通过scanf("%d,%d",&x,&y);使变量x得到数值3,变量y得到数值2,下面四组输入形式中,正确的是()A) 3 2<回车> B) 3,2<回车>C) 3<回车>2<回车> D) 32<回车>9.若已定义:int a[10],*p=a;并在以后语句中未改变p的值,则不能表示a[1]元素地址的表达式是( )A) p++ B) p+1 C) a++ D) a+110.已定义 int a[2][2]={1,2,3,4};则表达式“a[0][0]+a[1][1]+a[2][2]”的值是()A) 6 B) 4 C) 10 D) 错误的表达式11. 若有定义int a=0,b=1,c=2;则以下选项中值为0的表达式是()A)(!a==1)&&(!b==0) B)bC)a && b D)a||(b+b)&&(c-a)12.下面程序运行后输出结果是()void main(){char a[10]="x0\0x0\0";printf("%d %d\n", sizeof(a), strlen(a));return 0;}A) 10 10 B) 10 2 C) 10 1 D) 1 113.以下程序段中,不能正确为字符串赋值的是()A) char t[]="abc"; B) char t[4]="abc";C) char t[4];strcpy(t,"abc"); D) char t[4];t="abc";14.有如下程序段int *p,a=1,b=2;p=&b; b=*p+a;执行该程序段后,a、b的值分别为()A) 1 2 B) 1 3 C) 2 1 D) 3 115.若有定义:int n=1,m=2,*p=&n,*q=&m;,则以下非法的赋值语句是()A) p=q; B) *p=*q; C) p=m; D) *q=n;16. 下面函数的功能是()int fun(char *a,char *b){int m=0,n=0;while(*a!= '\0') {m++;a++;}while(*b!= '\0') {n++;b++;}return(m-n);}A) 计算a和b所指字符串的长度之差B) 比较a和b所指字符串的大小C) 将b所指字符串连接到a所指字符串后面D) 将b所指字符串连接到a所指字符串中17.下面程序的输出是( )int main(){int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;printf("%d",*(p+1));return 0;}A) 0 B) 1 C) 2 D) 318.以下叙述中正确的是()A) 输入项可以是一个实型常量,例如:scanf("%f",3.5);B) 只有格式控制,没有输入项,也能正确输入数据,例如:scanf("a=%d,b=%d");C) 输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf("%4.2f",&f);D) 输入数据时,必须指明变量地址,例如:scanf("%f",&f);19. 以下哪一个函数的运行不可能影响实参的数据()A) void f1(char x) B) void f2(char x[ ])C) void f3(char *x) D) void f4(char *x[ ])20.若有定义:char c;能正确判断出c为小写字母的表达式是()A)'a'<=c<= 'z' B)(c>='a')||(c<='z')C)('a'<=c)and ('z'>=c) D)(c>='a')&&(c<='z')21.以下程序的输出结果是()# include <stdio.h># include <math.h>int main(){ int a=1,b=4,c=2;float x=10.5 , y=4.0 , z;z=(a+b)/c+sqrt((double)y)*1.2/c+x;printf("%f\n",z);return 0;}A) 14.000000 B) 015.400000 C) 13.700000 D) 14.90000022.已有定义:char a[]="happy", b[]={'h','a’,'p','p','y'}; 以下叙述中正确的是()A) a数组长度大于b数组长度 B) a数组长度小于b数组长度C) 数组a和b的长度相同 D) 上述说法都不对23.以下不正确的叙述是()A) 在C程序中,ABC和abc是两个不同的变量B) 在C程序中,逗号运算符的优先级最低C) 从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值D) 如果变量a和变量b类型相同,在执行了赋值语句“a=b;”后b中的值将放入a中,而b中的值保持不变24.在定义一个结构体变量时,系统分配给它的存储空间是()A)该结构体中所有成员所需存储空间的总和B)该结构体中第一个成员所需存储空间C)该结构体中最后一个成员所需存储空间D)该结构体中占用最大存储空间的成员所需存储空间25. 以下正确的函数定义是()A) double f(int x, int y) { z=x+y; return z;}B) f(int x, y) { int z; return z; }C) f(x, y) { int x, y; double z; z=x+y; return z;}D) double f(int x, int y) { double z; z=x+y; retrun z;}26.若有定义int x,y,t; ,则执行语句x=y=3;t=++x||++y;后,y的值为( )A)0 B)1 C)3 D)427.下面的程序()int main(){int a=5,b=0,c=0;if(a=b+c) printf("* * *\n");else printf("$ $ $");return 0;}A)有语法错不能通过编译 B)可以通过编译但没有运行结果C)输出* * * D)输出$ $ $28.在C语言中,函数返回值的类型最终取决于()A) return语句中表达式值的类型B) 函数定义时在函数首部所说明的函数类型C)调用函数时主函数所传递的实参类型D)函数定义时形参的类型29. 函数fopen("my.txt","w")的作用是()A) 为读打开一个文本文件B) 为写打开一个文本文件C) 为读打开一个二进制文件D) 为写打开一个二进制文件30. 设有定义:struct {char a[10]; int b; double c;} s1,s2;,若变量均已正确赋值,则以下语句中错误的是()A)s1=s2; B)s1.a=s2.a; C)s1.b=s2.b; D)s1.c=s2.c;二、读程序,写出运行结果(每小题5分,共50分)(答案写在题目右侧)1. 下面程序的输出结果是:#include <stdio. h>int main(){ int i=1;for (;i<=10;i++){if (i%3!=2) continue;printf ("%d ",i);}return 0;}2. 下面程序的输出结果是:int main(){int i,j,k=0;for(i=10,j=0;i>=j;i--,j++)k+=i+j;printf("%d\n",k);return 0;}3. 下面程序的输出结果是:int main(){int a=100,x=10,y=20,ok1=5,ok2=0;if(x<y)if(y!=10)if(!ok1)a=1;elseif(ok2)a=10;a=-1;printf("%d\n",a);return 0;}4.下面程序的输出结果是:int main(){ int f=1,a=0,b=0;switch(f){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);return 0;}5.下面程序的输出结果是:#include <string.h>void fun(char *s,int n,int k){ int i;for(i=n;i<k-1;i++)s[i]=s[i+2];}int main(){ char s[]="abcdefg";fun(s,3,strlen(s));puts(s);return 0;}6. 下面程序的输出结果是:#include <stdio.h>void sub(int x,int y,int *z){ *z =x-y;}int main(){ int a,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%4d,%4d,%4d\n",a,b,c); return (0);}7.下面程序的输出结果是:long f(int n){long c;if (n==0||n==1) c=1;else c=f(n-1)*n;return c;}void main(){printf("%ld\n",f(3));}8.下面程序的输出结果是:void f1(int *p){ int t;t=*p; *p=*(p+1); *(p+1)=t;}void f2(int x,int y){ int t;t=x; x=y; y=t;}void main( ){ int a[2]={0,2},b[2]={1,5};f1(a); f2(b[0],b[1]);printf("%d %d %d %d\n",a[0],a[1],b[0],b[1]);}9.下面程序的输出结果是:#include <stdio.h>int main(){ void f(int *p,int n);int a[]={3,5,8,9,6},i;f(a,5);for(i=0;i<5;i++) printf("%d ",a[i]);return 0;}void f(int *p,int n){ int i,j,k,t;for(i=0;i<n-1;i++){ k=i;for(j=i+1;j<n;j++)if(p[j]<p[k]) k=j;if(k!=i){t=p[k]; p[k]=p[i]; p[i]=t;}}}10.下面程序的输出结果是:void func1(int i);void func2(int i);char st[]="hello,friend!";void func1(int i){printf("%c",st[i]);if(i<3){i+=2;func2(i);}}void func2(int i){printf("%c",st[i]);if(i<3){i+=2;func1(i);}}void main(){ int i=0; func1(i); printf("\n");}三.编程题(每题10分,共20分)1.输入m个数,求其最大数、最小数和平均值。