长春大学C语言题库(八卷)及答案_第1页
长春大学C语言题库(八卷)及答案_第2页
长春大学C语言题库(八卷)及答案_第3页
长春大学C语言题库(八卷)及答案_第4页
长春大学C语言题库(八卷)及答案_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(总分100分,考试时长90分钟)一、单项选择题(每小题2分,共40分)1、用高级程序设计语言编写的程序,OA、计算机能直接执行B、具有良好的可读性和可移植性C、执行效率高,但可读性差D、依赖于具体机器,可移植性差2、若有定义语句:inta=10;doubleb=3.14;,则表达式'a'+a+b值得类型是oA、charB、intdoublefloat3、下面程序的输出是("口"表示一个空格)inta=3366;printf("|%-08d|",a);|-0003366||00003366|C、|3366□□□口|D^输出格式非法4、运行以下程序后,如果从键盘上输入china#〈回车〉,则输出结果为Sinclude<stdio.h>main()(intvl=0,v2=0;charch;while((ch=getchar())!='#')switch(ch)(case'a':case'h':default:vl++;case'o):v2++;)printf("%d,%d\n”,vl,v2);)A、2,0B、5,0C、5,5D、2,55、有以下程序:#include<stdio.h>main()(intx=8;for(;x>0;x一)(if(x%3)(printf("%d,”,x-);continue;)printf("%d,",-x);程序的运行结果是OA、7,4,2B、8,7,5,2C、9,7,6,4D、8,5,4,26、有如下函数定义;voidfunc(inta,int&b)(a++;b++;)若执行代码段:intx=0,y=l;func(x,y);则变量x和y的值分别是。A、0和1B、1和1C、0和2D、1和27,设有intx=ll;则表达式(x++*l/3)的值是.A、3B、4C、11D、128、设有如下定义:charaa[2][20]={"abed","abed"};则以下说法中错误的是,A、aa是个二维数组,可以存放2个19个字符以下的字符串B、aa是个二维数组,每行中分别存放了字符串"abed"和"ABCD"C、aa[O]可以看作是一维数组名D、aa[O][0]可以看作是一维数组名9、下列内容是异常的含义的是oA、程序编译或运行中发生的异常事件B、程序的语法错误C、程序编译错误D、程序预先定义好的异常事件10、字符串"\\\〃abc\〃\\〃的长度是。A、11B、7C、5D、311、以下对一维数组a的正确说明是oA、chara(10);inta[];C、intk=5»a[k];D^chara[3]={,a','b,,'c'};12、以下程序的输出结果是.ttinclude<stdio.h>voidswap(int*a,int*b)(int*t;t=a;a=b;b=t;)main()inti=3,j=5,*p=&i,*q=&j;swap(p,q);printf(l%d%d,*p,*q);A,23B、34C、35D、4513,若有定义:"int*p,x=0,*p,p=&x;",则语句"printf("%d\n",*p)的输出结果是oA、随机值B、0C,x的地址D、P的地址14、设函数定义如下:floatfl(floata,floatb)(return(a+b);)若有floatx=l.l,y=2.2;,则以下语句中正确的函数调用是。printf f1();printf fl(&x,);printf f1(*x,*);D、printf(线f”,fl(x,);15、有以下程序:#include<stdio.h>main。{charcl,c2,c3,c4,c5,c6;scanf("%c%c%c%c”,&cl,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(cl);putchar(c2);printf("%c%c\n”,c5,c6);}程序运行后,若从键盘输入(从第11列开始)123V回车)45678V回车〉则输出结果是-A、1267B,1256C、1278124516、执行循环语句后,i变量的值是i=4;while(i—);printfi);A、0B、-1C、1D、有错误17、下面定义结构变量的语句中错误的是A、structstudent{intnum;charname[20];}s;B、struct{intnum;charname[20];}s;C、structstudent{intnum;charname[20];);structstudents;D、structstudent{intnum;charname[20];);students;18、以下程序的输出结果是.#include<stdio.h>fun(intx,inty,intz)(z=x*x+y*y;}voidmain()(inta=31;fun(5,2,a);printfa);)A、0B、29C、31D、无定值19、以下能正确定义二维数组的是。A、inta[][3]={1,2,3,4,5,6};B、inta[][3]={2*3};C、inta[][3]={);D、inta[2][3]={{1}»{2},{3,4});20、变量a所占的内存字节数是ounionu{charst[4];inti;long1;);structA{intc;unionu;}a;A、4B、5C、6D、8二、判断题(每小题2分,共20分)()1、宏定义的作用域为从源程序开始起到源程序结束止。()2、下列条件:-3-3&&xV3o()()3、定义在main函数后的任何函数都需在main中进行函数声明()4、以下程序段中,当i大于10或者s大于20时,循环结束。s=0;i=1;while(i<=10)(s=s+i;if(s>20)break;i++;()5、若有说明语句char*p="itismine”则p变量中存放的是整个字符串()6、fseek函数一般用于二进制文件。()7、指针变量可以指向数组,但不允许指向数组元素。()8、main。函数也是c语言的关键字()()9、在c语言中,字符数组可以存放字符串。()()10、文本文件和二进制文件都可以用eof作为文件结束标志。()三、编程题(每小题分,共40分)1、请编一个函数intfun(inta),它的功能是:判断a是否是素数,若a是素数,返回1;若不是素数,返回0oa的值由主函数从键盘读入。(本题10分)2、一个皮球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求当它第10次落地时,共经过了多少米,第10次反弹多高?(本题14分)3、有以下职工信息,使用结构体数组存储这些信息,从键盘输入5条记录,之后在屏幕上依次输出职工信息。structstuff{intstuffID;〃职工编号floatbonus;〃工资};【输入形式】5条职工信息,分行输入,数据间空格隔开【输出形式】分行输出5条职工信息和最低工资,每行数据均使用1个空格分隔【输入样例】10018540.5910026345.4510033500.6510044898.8610055345.80【输出样例】每行数据均使用一个空格分割,分五行输出10018540.5910026345.4510033500.6510044898.8610055345.80minBonus=3500.65(本题16分)参考答案一、单项选择题1、B【解析】用高级程序设计语言编写的程序具有良好的可读性和可移植性。2、C3、C4、C5、D【解析】本题考查for循环语句。x=8,for循环条件为真,8%3=2,不等于0,则if条件表达式为真,执行第一个输出语句,先输出x的值8,然后将x的值减1,此时x=7。然后执行continue语句结束本次循环。执行x—表示式,得x=6,for循环条件为真.6%3=0,则if条件表达式为假,执行第二个输出语句,先将x的值减1得x=5,然后输出x的值5。执行X—表示式,得x=4,for循环条件为真,4%3=1,不等于0,则if条件表达式为真,执行第一个输出语句,先输出x的值4,然后将x的值减1,此时x=3。然后执行continue语句结束本次循环。执行x—表示式,得x=2,for循环条件为真,2%3=2,不等于0,则if条件表达式为真,执行第一个输出语句,先输出x的值2,然后将x的值减1,此时x=l。执行x—表示式,得x=0,for循环条件为假,循环结束。6、C【解析】本题考查的知识点是:函数参数的传递方式。C的默认参数传递方式是传值,即将实参值的副本传递(拷贝)给被调用函数的形参。如果需要传地址,可通过传递指针、引用或数组类型的参数来实现。传值时,对形参的改变不会影响到实参;而传地址,则会同时改变实参。本题中形参a是普通参数,即传值调用,函数中对a增1不会影响到实参x的值;而形参b是引用,即传址调用,函数中对b增1同时也改变了实参y的值(y也增1了)。故最终结果是0和2,应该选择C。7、A【解析】当自加运算符做后缀表达式的时候,表达式的值不变,只有变量的值增加1,所以表达式(x++*l/3)相当于(11*1/3),取整后为3。8、D9、A【解析】异常是在程序编译或运行中所发生的可预料或不可预料的异常事件,它会引起程序的中断,影响程序正常运行。10、B11、D12、C【解析】本题主要考查的是函数参数的传递。在c语言中,函数参数的传递是“传值”的,即复制一份实参给形参,形参和实参是完全没有关系的两个变量。所以在函数内部改变形参变量,并不会影响到函数外部的实参。要实现“传址”调用,必须通过指针。因为将实参指针内容复制给了形参指针后,两个指针变量虽然没有任何关系,但它们指向的却是同一个内存地址,当改变形参指针所指向的那个内存地址的内容时,实参指针所指向的内容也就同时被改变了,从而实现了“传址”调用。但是,并不是说只要函数参数是指针,那肯定就是“传址”调用。故选择0。13、B14、D15、D16、B17、D18、C19、A20、C【解析】结构件变量所占内存长度是各成员占内存长度之和,而共用体变量所占的内存长度等于最长的成员的长度。本题结构体变量a中成员c为整型占2个字节,共用体变量u最大长度为4个字节,故选C。二、判断题1、错误2、正确3、错误4、正确5、错误6、正确7、错误8、错误9、正确10、错误三、编程题1、#include,stdio.h"intfun(inta)(-'inti;if(a==2)return1;i=2;while((a%i)!=0&&i<=sqrt((float)a))i++;if(a%i==0)printf(z/%disnotaprime!/z,a);return0;}printf(,z%disaprime!”,a);return1;)main()(intx;printf(〃\npleaseenteranumber:");scanf(〃%d〃,&x);printf("%d\n”,fun(x));)2、#includevoidmain(){inti;floatsum=100.0,h=50;for(i=2;i<=10;i++){sum=sum+2*h;h=h/2;)printf("%f,%f\n,z,sum,h);)3、#include<stdio.h>structstuff(intstuffID;floatbonus;/⑸;intmain()inti;floatmin;for(i=0;i<5;i++)scanf(z,%d%f”,&a[i].stuffID,&a[i].bonus);min=a[0].bonus;for(i=1;i<5;i++)(if(min>=a[i].bonus)min=a[i].bonus;)for(i=0;i<5;i++)printf(z/%d%.2f\n”,a[i].stuffID,a[i].bonus);printf(/zminBonus=%.2f〃,min);C语言题库(二)(总分100分,考试时长90分钟)一'单项选择题(每小题2分,共40分)1、下列可作为C语言赋值的语句的是oA、x—3,y=5B、a=b=6C>i--;D、a,c2、已知inti;floatf;正确的语句是。A、(intf)%iB、int(f)%iC、int(f%i)D、(int)f%i3、c语言提供的预处理功能包括条件,其基本形式为:#XXX标识符程序段1#else程序段2#endif这里的XXX可以是。define或includeifdef或includeC、indef或ifndef或defineD、ifdef或ifndef或if4、以下程序的输出结果是o#include<stdio.h>mainO{inta=l,b=3;if((++a<0)&&!(b--<=0))printf(z,%d,%d\n/z,a,b);elseprintf("%d,%d\n”,b,a);)A、2,2B、1,3C>3,2D、3,15、程序的基本控制结构是。A、顺序结构,多分支结构和单分支结构B、顺序结构,支结构和循环结构C、顺序结构,选择结构和循环结构。D、单行结构和多行结构。6、如果用数组名作为实参,则传递给形参的是。A、数组的首地址B、第一个元素的值C,数组元素的个数D、数组中全部元素的值7,正确表示条件100WxW300的c表达式是oA、100<=x<=300B,x>=100,x<=300C,x>=100&x<=300D、x>=100&&x<=3008、下述对c语言字符数组的描述中错误的是。A、字符数组可以存放字符串.B、字符数组中的字符串可以整体输入、输出.C、可以在赋值语句中通过赋值运算符”/对字符数组整体赋值.D,不可以用关系运算符对字符数组中的字符串进行比较.9、当说明一个共用体变量时系统分配给它的内存是oA,各成员所需要内存量的总和B、共用体中第一个成员所需内存量C、成员中占内存量最大者所需的容量D、共用体中最后一个成员所需内存量10、以下正确的字符串常量是='abc'OlympicD>**11、定义如下一维数组:inta[5],*p;则下列描述错误的是—A、表达式p=p+l是合法的B、表达式a=a+l是合法的C、表达式p-a是合法的D、表达式a+2是合法的12、c语言中不可以嵌套的是=A、函数调用B、函数定义C、循环语句D、选择语句13、若有条件表达式(exp)a++:b—,则以下表达式中能完全等价于表达式(exp)的是o(exp==O)(exp!=O)(exp==l)(exp!=l)14、si和s2已正确定义并分别指向两个字符串。若要求:当si所指串大于s2所指串时,执行语句s;则以下选项中正确的是OA、if(sl>s2)S;B、if(strcmp(sl,s2))S;C>if(strcmp(s2,si)>0)S;D>if(stremp(sl,s2)>0)S;15、下面的程序main()(intx=3,y=0,z=0;if(x=y+z)printf(z,****");elseprintf(,z####〃);)A、有语法错误不能通过编译B、输出****oC、可以通过编译,但是不能通过连接,因而不能运行。D、输出####。16、以下选项中与if(a=l)a++;elsea=b;语句功能不同的语句是switch(a)ease0:a=b;break;default:a++;switch(a==l)case0:a++:default:a=b;switch(a)default:a=b;break;case1:a++;a=(a==1)(a++):b17、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量bo则不能把结点b连接到结点a之后的语句是ostructnodechardata;structnode*next;)a,b,*p=&a,*q=&b;34753574C、1234D、123518、有以下程序inta=2;intf(int*a)(return(*a)++;)main()(ints=0;(inta=5;s+=f(&a);)s+=f(&a);printfs);)执行后输出结果是。A、10B、97D、819、若有说明inta[3][4];则a数组元素的非法引用是A、123B、2.5C、-12156320、以下选项中,能定义m为合法的结构体变量的是。typedefstructabc{doublea;charb;}m;struct{doublea;charb;}m;structABC{doublea;charb;}ABCm;typedefABC{doublea;charb;}ABCm;二、判断题(每小题2分,共20分)()1、全局变量本身就是静态存储方式。()2、字符数组定义后,不能用赋值语句将一字符串常量或字符数组直接赋给一个字符数组。()3、在c语言中,可以将主调函数放在被调函数的后面,省略函数的声明。()4、while语句的一般形式如下,其中的循环体语句只能是一条语句。()5、c语言中字符串的结束符是''0'。()()6、c程序可以省略main()函数。()7、当字符数组中的初值个数小于数组长度时,没有赋值的元素会默认赋值为空字符。()()8、在标准c语言中,所有函数在调用之前都要进行声明。()9、在定义函数时,若函数类型为"void”,则表示该函数没有返回值;若函数参数为"void”,则表示该函数没有参数。()()10、全局变量的作用域是整个源程序文件。三、编程题(每小题分,共40分)1、编写程序:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。(本题10分)2、编写程序:输出Fibonacci序列的前10个数,前两项键盘输入(本题14分)3、编写程序:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud”中。功能如下:请输入5个同学的信息:学生号,姓名,3门成绩:1a6070802b6080903c5939894e5688985d438878打开stud文件,内容如下1a607080702b608090763c593989624e568898805d43887869(本题16分)参考答案一、单项选择题1、C2、D3、D4、C【解析】解答本题的关键在于读懂if语句条件中的表达式。初始时a=l,b=3,所以++a=2>0,因此++aVO为假,因为是进行逻辑与(&&)运算,在&&的第一个运算对象为假的前提下不用判断第二个运算对象的真假,就可以直接得出整个表达式的值为逻辑0,所以直接执行else语句。5、C6、A【解析】将数组传递给函数时,实际上是传递数组第一个元素的地址给函数,即数组的首地址。7、D【解析】请仔细阅读交规难度:简单8、C9、C10、D11、B12、B13、B【解析】条件运算符要求有3个操作对象,称三目(元)运算符,它是C语言中惟一的一个三目运算符。条件表达式的一般形式为:表达式17表达式2:表达式3其求解顺序是:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。并且注意++、一的用法。14、D15、D16、B【解析】ifelse语句的含义是,如果变量a的值等于1,变量a的值加1,否则,则把变量b的值赋给变量a。在本题的4个选项中,与其含义不同的是选项B),因为没有break语句,当a=l的时候,会顺序执行两条语句,最终结果是将b的值赋给a。17、B【解析】在被调用过程中,有这样的语句"StaticSum”,因为变量Sum是局部变量,局部变量除了可以用Dim语句声明外,还可用Static语句将变量声明为静态变量,它在程序运行过程中可保留变量的值,这就是说每次调用过程时,用Static说明的变量保持原来的值。具体过程分析如下:调用P(l),所以在被调过程中N=l,执行ForNext循环,P(l)=Sum=l;调用P(2),所以在被调过程中N=2,执行ForNext循环,P(2)=Sum=4;调用P(3),所以在被调过程中N=3,执行ForNext循环,P(3)=Sum=10;调用P(4),所以在被调过程中N=4,执行ForNext循环,P(4)=Sum=20;不难看出,最后输出的结果S值应为1+4+10+20=35,所以选项C)正确。18、C19、B【解析】A)选项必须输入6个字母或数字(数字也能输入,不符合),C)选项可以输入6个任意字符,也不符合题议,D)选项可以选择输入6个数据或空格,不符合题意。20、B二、判断题1、正确2、正确3、正确4、错误5、正确6、错误7、正确8、错误9、正确10、错误三、编程题1、#include<stdio.h>intmain()(longa,b,c,d,e,x;printf("请输入5位数字:");scanf&x);a=x/10000; /*分解出万位*/b=x%10000/1000; /*分解出千位*/c=x%1000/100; /*分解出百位*/d=x%100/10; /*分解出十位*/e=x%10; /*分解出个位*/if(a!=0){printf(〃为5位数,逆序为:%ld%ld%ld%ld%ld\n",e,d,c,b,a);}elseif(b!=0){printf(〃为4位数,逆序为:%ld%ld%ld%ld\n,z,e,d,c,b);}elseif(c!=0){printf(〃为3位数,逆序为:%ld%ld%ld\n",e,d,c);}elseif(d!=0){printf(〃为2位数,逆序为:%ld%ld\n",e,d);}elseif(e!=0){printf(〃为1位数,逆序为:%ld\nz,,e);))2、#include<stdio.h>main()(inta[10],i,j;for(i=0;i<2;i++)scanf("%d”,&a[i]);for(i=2;i<=9;i++)a[i]=a[i-l]+a[i-2];for(i=0;i<=9;i++)printfa[i]);getchO;)3、#include<stdio.h>#include<stdlib.h>typedefstruct{intID;intmath;intEnglish;intC;intavargrade;charname[20];}Stu;intmain()(FILE*fp;Stustu[5];inti,avargrade=0;printf(〃请输入5个同学的信息:学生号,姓名,3门成绩:\n〃);for(i=0;i<5;i++)scanf(z,%d%s%d%d%dz,,&(stu[i].ID),stu[i].name,&(stu[i].math),&(stu[i].English),&(stu[i].C));stu[i].avargrade=(stu[i].math+stu[i].English+stu[i].C)/3;)if((fp=fopen("stud",〃w〃))==NULL){printf(/zerror:cannotopenfile!\n,z);exit(0);)for(i=0;i<5;i++)fprintf(fp,z/%d%s%d%d%d%d\n,z,stu[i].ID,stu[i].name,stu[i].math,stu[i].English,stu[i].C,stu[i].avargrade);fclose(fp);//system("pause");return0;C语言题库(三)(总分100分,考试时长90分钟)一、单项选择题(每小题2分,共40分)1、设c语言中,int类型数据占2个字节,则long类型数据占A、1个字节B、2个字节C、4个字节D、8个字节2、下列初始化语句中,正确且与语句charc[]="string”;等价的是A、charc[]={'s,,,t,,,r,,,B、charc[]=,string);C、charc[7]={'s,,,t,,,r,,,D、charc[7]={'string'};3、设有定义:intk=l,m=2;float•ff, ,f1i,n,g);f=7;,则以下选项中错误的表达式是A、k=k>=k-k++k%int(f)D、k>=f>=m4、下列程序的输出结果是—#include<stdio.h>main()(inta=0,b=l,c=2;if(++a>0||++b>0)++c;printf("%d,%d,刎",a,b,c);)A、0,1,2B、1,2,3C、1,1,3D、1,2,25、有以下程序#include<stdio.h>main()inti,j,m=l;for(i=l;i<3;i++){for(j=3;j>0;j—){if(i*j>3)break:m*=i*j;))printf("m=%d\n",m))程序运行后的输出结果是oA、m=6B、m=2C,m=4D、m=56、设有数据定义语句“inta[200];〃,下列数组元素引用中下标不越界的是A、a[-l]B、a[201]C,a[0]a[200]7、以下程序的运行结果是。main()(inta=5,p;if(p=a!=0)printf("n""d,p);elseprintfp+2);)A、5B、1C、0D、编译有错,无结果。8、设inta[10],*p=a;数组元素a[4]的正确引用是—*(p+4)B、p+4C>*p+4D>a+49、计算机的中央处理器每执行一条(),就完成一步基本运算和判断。A,命令B、指令C,程序D、语句10、下列选项中c语言中不合法的字符串常量的是。A、"\n\n〃"ABCD\x6d\11,有语句charstrl[10],str2[10]={/,china//};则能将字符串china赋给数组strl的正确语句是。A,strl={"china"};B、strcpy(strl,str2);C,strl=str2;D、strcpy(str2,strl);12、若调用一个函数,且此函数中没有return语句,则正确的说法是:该函数A、没有返回值B、返回若干个系统默认值C、能返回一个用户所希望的值D、返回一个不确定的值13、表达式‘5' 1'的值是oA、整数4B、字符4C、表达式不合法D,字符614、若有说明:int2[][3]={{1,2,3},{4,5},{6,7}};则数组2的第一维的大小为:()A、2B、3C、4D,无确定值15、以下程序的执行结果是.mainOintnum=0;while(num<=2)num++;printf('%d,”,num);))A,0,1,2B、1,2,C、1,2,3,D、1,2,3,4,16、下面程序的输出结果是.#include<stdio.h>voidmain()(intx=3;do(printf(ff%d",x-=2);}while(!(-x));}A、1B、1-2C,30D、是死循环17,以下叙述中正确的是oA、即使是同类型的结构体变量,也不能进行整体赋值B,结构体变量的地址不能作为实参传给函数C、结构体数组名不能作为实参传给函数D、结构体中可以含有指向本结构体的指针成员18、下面程序输出的结果是oniainO(intx=100,a=10,b=20,okl=5,ok2=0;if(a<b)if(b!=15)if(!okl)x=-i;elseif(ok2)x=10;x=l;printf("刎\n",x);A、~1B、0C、1D、不确定的值19、下列定义数组的语句中不正确的是一A、staticinta[2][3]={1,2,3,4,5,6};B、staticinta[2][3]={{1},{4,5}};C、staticinta[][3]={{1}>{4});D>staticinta[][]={{1,2,3},{4,5,6}};20、下面哪个不是关键字?A、intstructdefinecontinue二、判断题(每小题2分,共20分)()1、符号"a"和'a'的区别是是字符串常量,占2个字节;而'a'是字符常量,占1个字节。()()2、for语句的一般形式如下,其中的表达式1只执行一次。()3、在标准c语言中,共用体变量中的各成员是共同占用一块存储空间()4、若变量已正确定义,以下while循环结束时,i的值为11。i=1;while(i<=10)(printf("94>d\n”,i);)()5、用puts和gets函数可以输入或输出多个字符串。()6、c语言中函数返回值的类型跟形参的数据类型没有直接的联系。()7、对字符数组进行初始化时,如果初值个数小于数组长度,则只将这些字符赋给数组中的前面那些元素,其余元素自动定为空字符(''0')o()8、c语言程序中可以有多个函数,但只能有一个主函数。()9、用strcat(字符串1,字符串2)连接两个字符串函数时,字符串1的存储空间必须足够大。()10、在c程序中,若链接过程没有发现任何错误则表示链接成功,会生成一个".obj"文件。三、编程题(每小题分,共40分)1、已知银行定期存款利率为r=2.25%,输入存款本金x、存款年数n,输出本利之和y=x(l+r)(1+r)...(1+r),共n个之+r)。(本题10分)2、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。(本题14分)3、编写一个函数统计并打印所输入的正文中的各个英文单词出现的次数并按次数的递减顺序输出,使用结构体实现。(本题16分)参考答案一、单项选择题1、C2、C3、C4、C【解析】本题考查if语句。先判断if语句的条件是否成立,因为++a=l>0,所以条件成立,又因为是进行逻辑或运算,在已知其中一个运算对象为真的情况下,不必判断另外一个运算对象的真假,即不进行++b操作,就可以直接得出整个表达式的值为逻辑1,执行下面的++c。5、A6、C7、B8、A9、B【解析】一条指令就是给计算机下达的一道命令,一条指令包括操作码和地址码(或称操作数),本题的答案为B。10、B【解析】字符串常量是由双引号括起来的一串字符,其中的双引号不可缺少。由此可知,选项A)、C)、D)都是合法的字符串常量,而选B)是一个字符常量。11、B12、A13、A14、B15、C16、B17、D【解析】同类型的结构体变量可以进行整体赋值。结构体变量的地址可以作为实参传递给函数。结构体数组ing可以作为实参传递给函数。结构体成员可以包含指向本结构体的指针成员。本题答案为D选项。18、C【解析】如果没有大括号,else总是与它上面的最近的if配对。所以本题中的elseif(ok2)是与if(!okl)配对的,首先因为a<b成立所以进一步判断b!=15也成立,再进一步判断!okl,为假,不执行子句X=T;继续判断ok2是否为真,ok2亦为假,故子句x=10;也不执行,最后让x=l;输出x,所以结果应该选择C。19、D20、C二、判断题1、正确2、正确3、正确4、错误5、错误6、正确7、正确8、正确9、正确10、错误三、编程题1、#includevoidmain()(floatx,y,r=0.0225;inti,n;printf(”请输入存款本金x和存款年数n<);scanf&x,&n);y=x;for(i=l;i<=n;i++)y=y*(l+r);printf("%f\n",y);}2、程序分析:抓住分子与分母的变化规律。程序源代码:main(){intn,t,number=20;floata=2,b=l,s=0;for(n=l;n<=number;n++){s=s+a/b;t=a;a=a+b;b=t;/*这部分是程序的关键*/printf("sumis%9.6f\n",s);#include<stdio.h>#include<stdlib.h>#include<string.h>structlist{charwords[100];intnum;structlist*next;};typedefstructlistnode;typedefnode*link;voidcount(char*str){linkptr,head,ptrn,headnew;inti=0,j=0,prei=0;chartemp[20];ptr=(link)malloc(sizeof(node));head=ptr;ptr->next=NULL;do{if(*(str+i)==,'ll*(str+i)=='\0'){tempEj]-\0*;ptr=head;while(ptr->next!=NULL){if(strcmp(ptr->next->words,temp)==0){ptr->next->num++;break;)else{ptr=ptr->next;))if(ptr->next==NULL){ptr->next=(link)malloc(sizeof(node));strcpy(ptr->next->words,temp);ptr->next->num=l;ptr->next->next=NULL;}if(*(str+l)==,\0')break;j=0;i++;continue;temp[j++]=str[i++];}while(1);ptrn=(1ink)malloc(sizeof(node));headnew=ptrn;ptrn->next=NULL;ptr=head->next;ptrn=headnew;while(head->next!=NULL){while(ptrn->next!=NULL&&ptrn->next->num>=ptr->num)ptrn=ptrn->next;head->next=ptr->next;ptr->next=ptrn->next;ptrn->next=ptr;ptr=head->next;ptrn=headnew;}ptr=headnew->next;while(ptr!=NULL){puts(ptr->words);printf(/,%d\nz,,ptr->num);ptr=ptr->next;))intmain(){charstr[500];gets(str);count(str);C语言题库(四)(总分100分,考试时长90分钟)一、单项选择题(每小题2分,共40分)1、如下说法不正确的是oA、c>a+b等效于c>(a+b)B、若a,b均为真,则a||b为真C、表达式'c'&&'d'的值为0D、逻辑运算符!比逻辑运算符||的优先级高2、下列语句中符合c语言语法的赋值语句是oa=7+b+c=a+7;a=7+b++=a+7;C、a=7+b,b++,a+7D、a=7+b,c=a+7;3、表示关系1V=xV=100的c语言表达式为oA、x>=l&x<=100B、x>=landx<=100C、l<=x<=100D、x>=l&&x<=1004、设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是oA^if(x++);B、if(x>y&&y!=0);C^if(x>0)x-elsey++;D、if(y<0){;}elsex++;5、有以下程序#include<stdio.h>main()(intc;while((c=getchar())!='\n')(switch(c-,2,){case0:case1:putchar(c+4);putchar(c+4);break;putchar(c+3);putchar(c+2);break;)}printf(*\n*);)从第一列开始输入以下数据,Vcr>代表一个回车符。2473<cr>程序的输出结果是0668977668966C、66778777D、66887666、对下述程序的判断中,正确的是omain()(char*p,s[256];p=s;while(strcmp(s,z/theend"))printf(/zinputthestring:");gets(s);while(*p)putchar(*p++);})A、此程序循环接收字符串并输出,直到接收到字符串“theend”为止B、此程序循环接收字符串,接收到字符串“theend”则输出,否则程序终止C、此程序循环接收字符串并输出,直到接收字符串“theend”为止,但因为代码有错误,程序不能正常工作D、此程序循环接收字符串并将其连接在一起,直到接收字符串“theend”为止,输出连接在一起的字符串7、以下选项中合法的c语言赋值语句是o++i;a=b=34C^a=3,b=9D、k=int(a+b);8、下列定义数组的语句中,正确的是o#defineN10intx[N];intN=10;intx[N];C、intx[0...10];D、intx[];9、如果一个表达式包含算术运算、关系运算、逻辑运算和字符运算时,运算的先后顺序是OA、算术运算一关系运算一逻辑运算一字符运算B、算术运算一字符运算一关系运算一逻辑运算C、逻辑运算一关系运算一算术运算一字符运算D、字符运算一算术运算一逻辑运算一关系运算10、设有定义:char*c;以下选项中能够使字符型指针c正确指向一个字符串的是OA、charstr[]="string”;c=str;B、scanfc);c=getchar();D、*c=*string/z;11、下列描述中不正确的是OA、字符型数组中可能存放字符串。B、可以对字符型数组进行整体输入、输出。C、可以对整型数组进行整体输入、输出。D、不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。12、若主调用函数类型为double,被调用函数定义中没有进行函数类型说明,而return语句中的表达式类型为float型,则被调函数返回值的类型是int型float型double型D、由系统当时的情况而定13、在c语言中,要求运算数必须是整型的运算符是。A、>B、++C、!=D、%14、下面程序的功能是将字符串s中所有的字符'c'删除#include“stdio.h"main()(chars[80];inti,j;gets(s);for(i=j=O;s[i]!=>\0*;i++)if(s[i]!="c');s[j]-\0';puts(s);)s[j++]=s[i]s[++j]=s[i]s[j]=s[i];j++D、s[j]=s[i]15、有以下程序:main()(inta=l,b=0;if(-a)b++;elseif(a=0)b+=2;elseb+=3:printf(*%d\n*,b);)程序运行后的输出结果是oA、0B、1C、2D、316、若有以下程序段,w和k都是整型变量:w=k;lb:if(w==0)gotole;w-;printf("*");gotolb;le:...则不能与上面程序段等价的循环语句是—A、for(w=k;w!=0:w)printf("*");B、w=k;<CR>while(w-!=0)printf(***);w++;C、w=k;<CR>do{w-;printf(***);}while(w!=0);D^for(w=k;w;-w)printf("*");17、有以下程序#include<stdio.h>structtt{intx;structtt*y;)*p;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main()(inti;P=a;for(i=l;i<=2,i++)(printf("%d,",p->x);p=p->y;))程序的运行结果是。A、20,30,B、30,17C、15,30,D、20,1518、以下程序的输出结果是o#include<stdio.h>Winclude<string.h>main(){charstr[12]={'s,,,t,,,r,,,i,,,n,,,g,};printf(,/%d\n,,)strlen(str));)A、6B,7C、11D、1219、以下能正确定义一维数组的选项是。A、inta[5]={0,1,2,3,4,5);B、chara[]={1,2,3,4,5,6);C、chara二{'s','d','k'};D、inta[5]="0123〃;20、c语言中,定义结构体的保留字是ounionstructenumtypedef二、判断题(每小题2分,共20分)()1、C语言的标识符由字母、数字和下划线组成,其中第一个字符必须是字母或下划线。()2、在C语言中转义字符有特殊的含义,它以反斜杠'开头,后面接特定的字符。()()3、c程序总是从main()函数的第一条语句开始执行的。()()4、while语句和do-while语句的一般形式分别如下,其主要区别是:while语句先判断循环条件,只有条件满足才进入循环,如果一开始条件就不满足,则循环一次都不执行。而do-while语句先执行循环体,后判断循环条件,所以无论循环条件的值如何,至少会执行一次循环体。()5、用puts和gets函数只能输入或输出一个字符串。()6、函数strcpy(strl,str2);的功能是将字符串str2复制到字符串strl中。()7、数组定义后,数组名的值是一个地址,可以被修改。()8、c程序函数体是由左右方括号[]括起来的部分。()9、函数名代表该函数的入口地址。因此,可用函数名给指向函数的指针变量赋值()10、如果在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量依然起作用。三、编程题(每小题分,共40分)1、编写程序:求100之内的素数。(本题10分)2、百鸡问题:用100元买100只鸡,大公鸡5元1只,母鸡3元1只,小鸡1元3只。问各能买多少只?(本题14分)3、题目描述,定义一个包括年、月、日的结构体变量,读入年、月、日,计算该日在当年中是第几天。注意闰年问题。输入三个整数,分别表示年、月、日。保证输入是实际存在的日期,且年份在1000至3000之间(包含1000和3000)。输出输出该日期是一年中的第几天。请注意行尾输出换行。样例输入20121221样例输出356(本题16分)参考答案一、单项选择题1、C2、D3、D4、C【解析】C语言规定,在“if(表达式)语句l;else语句2;”这种形式的if语句中,在每一个else前面有一个分号,整个语句结束处有一分号。在本题的C)选项中,else前面少了一个分号,这样程序在编译时,会出现语法错误。5、A6、C7、A【解析】赋值语句是在赋值表达式末尾加上分号构成的。B、C选项缺少分号,不是合法语句。D选项为强制类型转换赋值语句,但是int缺少括号,是非法语句。++i相当于i=i+l:,是合法赋值语句,A选项正确。8、A【解析】数组说明的一般形式为:类型说明符数组名[常量表达式]。B选项中N是变量,不能用变量定义数组长度。C选项中数组长度是非法的一串数字。定义数组时必须为其指明长度,D选项中数组长度为空,所以非法。9、B【解析】在一个含有各种运算的表达式中,它们运算的优先顺序是:算术运算一字符运算和日期时间运算一关系运算一逻辑运算。故选项B为正确答案。10、A11、C12、A13、D14、A15、D16、C17、D18、A19、B20、B二、判断题1、正确2、正确3、正确4、正确5、正确6、正确7、错误8、错误9、正确10、错误三、编程题1、#includeVstdio.h>#include<math.h>intmain()(inti,j,k,n=0;for(i=2;i<=100;i++)(k=(int)sqrt(i);for(j=2;j<=k;j++)if(i%j==O)break;if(j>k)(printf(/z%d",i);n++;if(n%5==0)printf("\n");))return0;)2、#include<stdio.h>voidmain()intcock,hen,chick;for(cock=l;cock<=20;cock++)for(hen=l;hen<=33;hen++)for(chick=l;chick<=100;chick++)if((cock+hen+chick==100)&&(15*cock+9*hen+l*chick==300))printf("公鸡:%4d母鸡:%4d小鸡:%4d\n",cock,hen,chick);)3、#include<stdio.h>intmain(){structdd{inty,m,d;)date;inti,j,k;scanf(为d%d%d”,&date.y,&date.m,&date.d);k=date.d;if(date.m>l)k+=31;if(date.m>2)k+=28;if(date.m>3)k+=31;if(date.m>4)k+=30;if(date.m>5)k+=31;if(date.m>6)k+=30;if(date.m>7)k+=31;if(date.m>8)k+=31;if(date.m>9)k+=30;if(date.m>10)k+=31;if(date.m>ll)k+=30;if(date.y%4==0&&date,y%100!=0||date.y%400==0)k++;printfk);C语言题库(五)(总分100分,考试时长90分钟)一、单项选择题(每小题2分,共40分)1、若变量已正确定义并赋值,以下符合c语言语法的表达式是a:=b+1a=b=c+2int18.5%3D>a=a+7=c+b2、以下说法中正确的是oA、#define和printf都是C语句B、#define是C语句,而printf不是。C、printf是C语句,但#(^乳加不是。D、#define和printf都不是C语句3、以下选项中,与k=n++完全等价的表达式是ok=n,n=n+ln=n+1,k=nk=++nk+=n+l4、与y=(x>0?l:x<0?-l:0);的功能相同的if语句是。A、if(x>0)y=l;elseif(x<0)y=-l;elsey=0;if(x)if(x>0)y=l;elseif(x<0)y=-l;elsey=0;y=-lif(x)if(x>0)y=l;elseif(x==0)y=0;elsey=-l;y=0;if(x>=0)if(x>0)y=l;elsey=-l;5、以下叙述中正确的是oA、continue语句使得整个循环终止B、break语句不能用于提前结束for语句的本层循环C、使用breakswitch语句可以使流程跳出语句体D、在for语句中,continue与break的效果是一样的,可以互换6、关于c语言中print()函数与scanf()函数,下列描述中正确的是.A、printf()函数可以向任何地方输出数据B、printf()只向控制台输出数据C、scanf()只能输入英文字母和数字D、scanf()函数可以识别输入的空格7、下列四组选项中,均不是c语言关键字的选项是odefineIFtypegetccharprintfC^includescanfcaseD、whilegopow8、下列定义数组的语句,正确的是ointN=10;intx[N];#defineN10;intx[N];intx[0..10];D、intx[];9、以下选项中不合法的标识是oA、&aB、FORC、printD、_0010、下面正确的字符串常量是oA、’a'B、’376'C、"\n"D、37611、对于int*pa[5];的描述,以下哪个选项是正确的A、pa是一个指向数组的指针,所指向的数组是五个int类型的指针B、pa是一个具有五个元素的指针数组,每个元素都是一个int类型的指针C、pa[5]表示某个数的第五个元素的值D、pa是一个指向某个数组中第五个元素的指针,该元素是int类型的变量12、有以下函数intfun(char*s)char*t=s;while(*t++);return(t-s);)该函数的功能是。A、比较两个字符串的大小B、计算S所指字符串占用内存字节的个数C、计算S所指字符串的长度D、将S所指字符串复制到字符串t中13、在微机汉字系统中,一个汉字的机内码占的字节数是一A、1B、2C、4D、814、有以下程序:voidfun(int*pl,int*p2,int*s)(s=(int*)malloc(sizeof(int));*s=*pl+*p2;free(s);)main()(inta=l,b=40,*q=&a;fun(&a,&b,q);printf*q);)程序运行后的输出结果是。A,42B、0C>1D、4115、有以下程序main(){char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};printf("姒i\n”,strlen(p[4]));)执行后输出结果是OA、2B、3C、4D、516、关于循环体while的说法下列正确的是oA、循环体的执行次数总比条件表达式多一次B、循环体的执行次数总比条件表达式少一次C、循环体的执行次数与条件表达式无关D、循环体的执行次数与条件表达式相等17、以下选项中不能正确把cl定义成结构体变量的是一typedefstructintred;intgreen;intblue;}COLOR;COLORcl;structcolorcl(intred;intgreen;intblue;);C>structcolor(intred;intgreen;intblue;}cl;D、struct(intred;intgreen;intblue;}cl;18、有以下程序main()inti=10,j=l;printf(zz%d,%d\nzz,i一,++j);)执行后输出的结果是OA、9,2B、10,2C、9,1D、10,119、著有下列定义,则( )是对a数组元素地址的正确引用。inta[5],*p=a;A、p+5B、*a+1&a+lD、&a[0]20、以下结构体类型说明和变量定义中正确的是otypedefstructintn;charc;REC;RECtl,t2;struetREC;intn;charc;;RECtl,t2;typedefstructREC;intn=0;charc='A';tl,t2;RECtl,t2;structintn;charc;REC;二、判断题(每小题2分,共20分)()1、执行以下语句后,输出2.50。printf(*%.2i",(double)5/2);()2、"++”运算符的优先级比"运算符的优先低()3、指针变量和它指向的变量之间的关系,可以用指针运算符表示()4、循环体如果包含一个以上语句,应该用圆括弧括起来,以复合语句的形式出现。()5、用strcat(字符串1,字符串2)连接两个字符串函数时,字符串1的存储空间没有限制。()6、c语言中的main。函数是程序的入口。()7、对以下定义的二维数组table,其行下标的取值范围是[0,2],列下标的取值范围是[0,1],数组元素分别是:table[0][0]、table tabletable[1][1]>table[2][0]和table[2][1],可以表示一个3行2列的矩阵。inttable[3][2];()8、指针变量,只能作为函数的形参,不可以作函数的实参()9、数组名是一个指针,它可以指向数组中的任何元素。()()10、静态外部变量只在本文件内可用.三、编程题(每小题分,共40分)1、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?(本题10分)2、编写程序:求0—7所能组成的奇数个数。比如:1位数为奇数的个数42位数为奇数的个数283位数为奇数的个数224 (本题14分)3、定义一个结构体student,存储学生的学号、名字、性别和年龄,读入每个学生的所有信息,保存在结构体中,并输出。结构体student的定义如下:structstudent{intnum;charname[20];charsex;intage;);本题要求使用指向结构体数组进行输入和输出。输入:第一行有一个整数n,表示以下有n个学生的信息将会输入。保证n不大于20o以后的n行中,每一行包含对应学生的学号、名字、性别和年龄,用空格隔开。保证每一个人名都不包含空格且长度不超过15,性别用M和F两个字符来表示。输出:有n行,每行输出一个学生的学号、名字、性别和年龄,用空格隔开。请注意行尾输出换行。样例输入:310101LiLinM1810102ZhangFunM1910104WangMinF20样例输出:10101LiLinM1810102ZhangFunM1910104WangMinF20(本题16分)参考答案一、单项选择题1、B【解析】本题考查C语言的正确赋值方法。a=b=c+2实际上相当于a=(b=c+2),进而可分解为两个表达式:6飞+2和2=上注意:选项A)中包含一个不合法的运算符“:=”;选项C)应改为(int)18.5%3;选项D)可理解为两个表达式:2+7气+1)和2=2+7,其中第一个是错的,因为C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。2、D3、A【解析】k=n++的意思是先将n的值赋给k,然后n的值再加1,选项A)符合题意;选项B)和C)是先使n的值加1,然后再赋值给k;选项D)等价于k=k+(n+1)o4、A5、C【解析】break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时可使程序跳出switchswitch而执行以后的语句;当break语句用于do-whie、for、while循环语句中时可使程序终止循环而执行循环后面的语句,即满足条件时便跳出循环。continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。A,B和D三个选项中均有错误。因此C选项正确。6、B【解析】printfO是向控制台输出的函数7、A8、B【解析】数组说明的一般形式为:类型说明符数组名[常量表达式];其中类型说明符可以是任一种基本数据类型或构造数据类型,数组名是定义的数组标识符。常量表达式表示数据元素的个数,也就是数组的长度,必须是整型常量。9、A10、C11、B12、B【解析】循环语句while(*t++);执行完时,指针变量t就指向了字符串结束符''0'之后的位置,所以语句return(t-s);返回的就是字符串s所用内存的字节个数。13、B14、C15、A16、B17、B18、B19、D20、A【解析】struct结构体名后不能加";"号,所以选项B、C错误,选项D中应为structtl,t2;选项A为正确的定义形式。二、判断题1、正确2、错误3、正确4、错误5、错误6、正确7、正确8、正确9、错误10、正确三、编程题1、程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析:程序源代码:#include"math,h”main()(longinti,x,y,z;for(i=l;i<100000;i++)(x=sqrt(i+100); /*x为加上100后开方后的结果*/y=sqrt(i+268); /*y为再加上168后开方后的结果*/if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/printf(*\n%ld\n*,i);})2、#include<stdio.h>intmain(intagrc,char*agrv[])longsum=4,s=4;〃sum的初始值为4表示,只有一位数字组成的奇数个数为4个intj;for(j=2;j<=8;j++)(printf("刎位数为奇数的个数%ld\n”,j-1,s);if(j<=2)s*=7;elses*=8;sum+=s;)printf("刎位数为奇数的个数%ld\n”,j-1,s);printf("奇数的总个数为:%ld\n/z,sum);//system("pause");return0;)3、#include<stdio.h>structstudent{intnum;charname[20];charsex;intage;}stu[20],*p;intmainO{intn;scanf(〃%d〃,&n);p=stu;for(inti=0;i<n;i++){scanf(,z%d%s%c%d,z,&p->num,p->name,&p->sex,&p->age);printfC%d%s%c%d\n〃,p->num,p->name,p->sex,p->age);returnO;C语言题库(六)(总分100分,考试时长90分钟)一'单项选择题(每小题2分,共40分)1、以下选项中不属于字符常量的是OA、'C'B、"C"C、'\xCC0'D、'\072'2、已知三个用不同数制表示的整数a=00111101b,b=3ch,c=64d,则能成立的比较关系式。A、A<B<CB,B<C<AC、B<A<CD、C<B<A3、以下变量声明中正确的是。A、intB、_strC、6xyD、h7#4、c语言中,关系表达式和逻辑表达式的值是0A、0B、0或1C、1D、‘T或'F'5、下列叙述中正确的是oA、break语句只能用于switch语句B、在switch语句中必须使用defaultC>break语句必须与switch语句中的case配对使用D、在switch语句中,不一定使用break语句6、在下面的函数声明中,存在着语法错误的是oA、voidBC(inta,inB、voidBD(int,inC>voidBE(int,intt=5)D、intBF(intx;int7、该语句打印结果为(每个d后都有空格)printf("d”,printf("%d”,printf(/z%d”,43)));4321434343433243218、数组定义为inta[3][2]={1,2,3,4,5,6},数组元素()的值为6。a[3][2]a[2][1]C、a⑴⑵D、a[2][3]9、以下叙述中不正确的是oA、预处理命令行都必须以撑号开始,结尾不加分号B、在程序中凡是以#号开始的语句行都是预处理命令行C、C程序在执行过程中对预处理命令进行处理D、预处理命令可以放在程序中的任何位置10、判断两个字符串是否相等,正确的表达方式是owhile(sl==s2)while(sl=s2)C、while(strcmp(si,s2)==0)D^while(strcmp(si,s2)=0)Ik定义如下变量和数组:inti,x[3][3]={1,2,3,4,5,6,7,8,9);则下面语句for(i=0;i<3;i++)printfx[i][2-i]);的输出结果是A、159B、147C、357D、36912、下面叙述中错误的是oA、函数的形式参数,在函数未被调用时就不被分配存储空间B、若函数的定义出现在主调函数之前,则可以不必再加说明C、若一个函数没有return语句,则什么值也不会返回D、一般来说,函数的形参和实参的类型要一致13、c语言的注释定界符是oA、()B、[]\* *\/* */14、以下叙述中不正确的是.A、一个变量的作用域完全取决于变量定义语句的位置B、全局变量可以在函数以外的任何部位进行定义C、局部变量的“生存期”只限于本次函数调用,因此不可能将局部变量的运算结果保存至下一次调用D、一个变量说明为static存储类别是为于限制其它编译单位的引用15、有以下程序:main(){inty=l,x=2,z=3;printf("%d,%d\n”,(++x,y++),z+2);)执行后的输出结果是oA、3,5B、2,5C、3,3D、1,516、c语言中while和do-while循环的主要区别是.A、do-while的循环体至少无条件执行一次B、while的循环控制条件比do-while的循环控制条件严格C、do-while允许从外部转到循环体内D^do-while的循环体不能是复合语句17、设有以下说明语句:typedefstructstu(inta;floatb;)stutype;则下面叙述中错误的是oA、struct是结构类型的关键字B、structstu是用户定义的结构类型C、a和b都是结构成员名D^stutype是用户定义的结构体变量名18、下面程序段的运行结果是.intx=0,y=0;while(x<15)y++,x+=++y;printf(*%d,%d”,y,x);A、20,7B、6,12C、20,8D、8,2019、下列哪个数组定义是正确的inta[5)5];INTa[10];inta[n];inta[3+2];20、设有以下说明语句typedefstruct(intn;charch[8];)per;则下面叙述中正确的是oA、PER是结构体变量名B、PER是结构体类型名C、typedefstruct是结构体类型D、struct是结构体类型名二、判断题(每小题2分,共20分)()1、在标准C语言中,数组的下标必须是常量,不允许是表达式。()2、在一定范围内,字符型数据也可以像整型数据那样使用。()3、在定义数组时,什么时候都不可以将该数组的维数省略。()4、在循环过程中,使用break语句和continue语句的作用是一样的()5、字符串必须以'0'结束,但字符数组可以不包括'0'。()6、c语言函数默认的返回值类型是int。()()7、一个数组是由连续的一块内存单元组成的,指针变量就是这块连续内存单元的首地址()8、一个自定义函数中可以根据不同情况设置多条return语句。()()9、任何数组在使用前必须先定义。()10、c程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论