C语言练习题大全_第1页
C语言练习题大全_第2页
C语言练习题大全_第3页
C语言练习题大全_第4页
已阅读5页,还剩111页未读 继续免费阅读

下载本文档

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

文档简介

《C语言》题库题型说明各章内容符号名称分数答题说明,,スじ内容'j内容草亏内容A选择题101C语言概述07数组13文件B填空题202算法08函数14C分析程序结果403数据类型、运算符与表达式09预处理命令15D程序填空204顺序程序设计10指针16E编程题1005选择程序设计11结构体与共用体1706循环控制12位运算18备注:ttinclude<string.h>structSTU{charname[10];intnum;}voidf(char*name,intnum){structSTUs[2]={{“SunDan”,20044},{“Penghua”,20045}};num=s[0].num;strcpy(name,s[0].name);)main(){structSTUs[2]={{“YangSan”,20041},{“LiSiGuo”,20042}},*p;p=*s[l];f(p->name,p->num);printf("%s%d",p->name,pー〉num);)程序运行后的输出结果是( )A、SunDan20042B、SunDan20044C、LiSiGuo20042D、YangSan20041'0338A033905E2编写程序,打印出所有的“对等数”。“对等数”是指ー个三位数,其各位数字的和与各位数字的积的积等于该数本身。例如:144=(1+4+4)*(1*4*4)'0339main()inta,b,c,k;for(k=100;k<1000;k++)a-k/100;b=(k-100*a)/10;c=k%10;)}if(k=(a+b+c)*a*b*c)printf("%d,”,k);034007E2编写ー个函数insert(inta[],intn,intx),功能是向ー个有序数组a插入ー个数x,原数组仍然有序。其中,n为a数组中的元素个数。、〇340voidinsert(inta[],intn,intx)(inti;for(i=n-l;i〉=0;i—)if(a[i]>x)a[i+l]=a[i];elsebreak;a[i+l]=x;034108E2用递归方法实现,求1+2+3+…+n的和。(其中n是自然数)。0341inthe(intn){inty;if(n==l)y=l;elsey=he(nT)+n;returny;034203B1C语言的基本数据类型有( )、( )、()〇'0342整型实型 字符型'034311B1使几个不同的变量共占同一段内存的结构,称为( )类型的结构。'0343共用体034403B1C语言中逻辑值“假”用( )表示。'03440034503B1C语言中逻辑运算符优先级按由低到高分别是( )。〜0345II&&!03460381ー个C语句中至少包含一个()〇'0346;或分号034703B1若x是int型变量,且x=6,则表达式(x%2+(x+l)/2)的值为()〇、〇3473若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为A、〇B、1C,-1D、ー个非〇值、〇348A034903B2设inta=10,c=9J则表达式(-a=c++?--a:++c)的值是()〇'03498035003C2若有说明intx=10,y=20;请写出下面各printf语句对应的输出结果。TOC\o"1-5"\h\z①printf( "%3x\n" ,x+y); ( );②printf( "%3o\n” ,x*y); ( );③printf( "%3o\n" ,x%y); ( );printf("%3x\n",(x%y,x-y,x+y)); ( )〇、〇350le31012le0351年03B1若k为int型变量且赋值11。请写出运算k++后表达式的值()和变量的值( )。〜0351 1112*035213A1用只读方式打开ー个文件“file”,下列正确的是()A、fp=fopen("file","r");B、fp=fopen("file","w");C、fp=fopen("file","r+");D、fp=fopen("file","w+");'0352A035308A2下列定义中不正确的是()〇

A、intp; B、intp[n];C,int*p(n);D、int(*p)();E、int**p;~0353C035408A1以下关于函数的叙述中正确的是A、每个函数都可以被其它函数调用(包括main函数)B、每个函数都可以被单独编译C、每个函数都可以单独运行D、在ー个函数内部可以定义另ー个函数'0354B■035510A2有以下程序main(){inta[10]={l,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;Printf(“%d\n”,*p+*q);)程序运行后的输出结果是A、!6B、10C、8D、6、〇355B035603A1设有intx=5,y=8;则表达式(x+5〈y-3くx-5)的值是( )A、1 B、〇 C、3 D、4、〇356B035707A1有以下程序main(){charp[]={,a','b','c'},qロ="abc

printf(H%d%d”,sizeof(p),sizeof(q));)程序运行后的输出结果是D、43D、死循环A、44 B、D、43D、死循环'0357C035806A2以下程序的输出结果是()〇intx=3;do{printf("%d”,x-=2);}while(!(—x));A、1B、30 C>1-2〜0358C035910B2下列语句执行后的结果是( )〇main(){intarr口={30,25,20,15,10,5},*p=arr;P++;printf(“%d\n”,*(p+3));)“035910-036010C2voidfun(int*n){while(*n)—};Printf(“%d”,++(*n);)main(){inta=100;fun(&a);)"03600'036103A2以下程序的输出结果是main(){intx=0.5;charz='a';printf("%d\n",(x&l)&&(zく’z'));}A、〇B、1 C,2 D、3〜0361B"036210A1下列程序的输出结果是main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf(“如”,*—p);}と非法 B、a[4]的地址 C、5 D、3〜0362C036310A1经过下面的语句inti,a[10],*p;定义后,下列语句中合法的是()〇A、p=100; B、p=a[5];C^p=a[2]+2;D、p=&(i+2);E、p=a+2;、0363E036410A1经过下面的语句inti,a[5],*p;定义后,下列语句中合法的是()〇A、p=a;B、p=a[5]; C、p=a[2]+2; D、p=&(i+2);E,p=**a;、0364A036503B1静态双精度实型变量flag;'0365ststicdoubleflag;036607B1指向具有5个数据元素的长整型数组的指针变量p;'0366longint(*p)[5];03670363表示时间的变量t;〜0367struct{nusigndeh,m,s;}t;'036807B2表示班级60名学生姓名的数组xm;、〇368charxmL61][10];036911B3定义类型COLOR为具有五种颜色(用英文表示颜色)的枚举类型。'0369typedefenumcolor{red,blue,white,green,yellow}COLOR;037006E3计算six,nine满足six+six+six=nine+nine/・注:由于有SIX+SIX+SIX=NINE+NINE*/'0370voidcountvalue(){inti;printf("\n");for(i=666;i<=999;i=i+2)if(i/10%10==(3*i/2)/100%10) /・以I为准・/{cnt++;sum+=i+3*i/2;))037108C2#include<stdio.h>main(){intI,s;for(i=0;i<2;i++){s=fun();printf(u%d\nw,s);})intfunO{intlv=0;staticintsv=0;sv+=lv++;returnsv;)〜03710〇"037204C3main()(inti,x,y,t;chara,b;scanf(“%d",&i);if(i>10)(printf("%x\t”,i);a-i&OxOOOf;b=(i«2)&0x00ff;printf("%x\t%x\n”,b,a);当程序运行时输入11之后,执行的输出结果是:()〜037211 44 11037308C3本程序运行时,当分别输入字符串"ABCD”和“1234”时,输出结果是什么?charcon(stringl,string2,string)charstringl[],string2ロ,string[];(inti,j;for(i=0;stringl[i]!='、〇';i++)string[i]=stringl[i];for(j=0;string2[j]!=>\0';j++)string[i+j]=string2[j];string[i+j]-\0);)main()(charsi[100],s2[100],s[100];scanfsi);scanfs2);con(sl,s2,s);printf("%s\n”,s);)〜0373ABCD1234'037407E2编写ー个函数S,对数组从小到大进行排序。〜0374#includeくstdio.h>voids(intb[],intn){inti,j,t,fig;for(i=0;i<n-l;i++){for(flg=0,j=0;j<n-i-l;j++)if(b[j]>b[j+l]{t=b[j];b[j]=b[j+l];b[j+l]=t;flg=l;)if(!fig)break;037504C1以下程序的功能是什么( )main(){charch;scanf("%c\n",&ch);ch=(ch>='A'&&ch<='Z')?ch+32:ch;printf("char=%c\n”,ch);}'0375把大写字母A-Z转换成对应的小写字母a-z,其它字符不转换。037605D2本程序从键盘输入n(0くnく100)个整数,计算并输出其中出现次数最多且数值最大的元素及其出现次数。#include<stdio.h>SdefineN100voidmainO{inta[N],n,i,j,ind,cl,c2;do{printf("输入n(0くnく100):\n");scanf(“对",&n);}while(n<=0||_);printf(“输入数组元素:\n”);for(i=0;i<n;i++)scanf("%dw,&a[i]);for(c2=i=0;iくn;i++)for(cl=l,j=i+l;j<n;j++)if(a[j]=a[i])_;if()IIcl==c2&&a[i]>a[ind]){c2=cl;;printf("其中%d出现为d次、n”,a[ind],c2);)へ0376n>=100cl++或cl=cl+lcl>c2ind二i037705A1设有程序段intk=10;while(k=0)k=k-l;则下面的描述正确的是( )A、while循环执行10次B、循环是无限循环C、循环体语句ー次也不执行D、循环体语句执行ー次“0377C037805A1设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d”,s);典」( )A,运行程序段后输出0B、运行程序段后输出1C、程序段中控制表达式是非法的D、程序段执行无限次"0378B037903A1语句while(!E);中的表达式!E等价于( )A,E==0B、E!=1C、E!=0D、E==l0379A038005A2下面程序段运行结果是( )a=l;b=2;c=2;while(a<b<c){t=a;a=b;b=t;c—;}printf(M%d,%d,%dw,a,b,c);A、!,2,0 B、2,1,0C、!,2,1 D、2,1,1'0380A038105A2下面程序段运行结果是( )x=y=0;while(x<15)y++,x+=++y;printf("%d,%d”,y,x);A、20,7B、6,12〜0381D038205A2下面程序段运行结果是(C、20,8D、8,20intn=0;while(n++<=2);printf("%d",n);A、2B、3C、4D'有语法错'0382C038305A3t=0;while(printf(u*,,)){t++;if(t<3)break;)下面描述正确的是( )A、其中循环控制表达式与〇等价B、其中循环控制表达式与‘〇’等价C、其中循环控制表达式是不合法的D、以上说法都不对~0383038405A2下面程序的功能是将从键盘输入的ー对数,由小到大排序输出。当输入ー对相等数时结束循环,请选择填空#include<stdio.h>main(){inta,b,t;scanf("%d%d”,&a,&b);while(_){if(a>b){t=a;a=b;b=t;}printf("%d,%d\n”,a,b);scanf("%d%d”,&a,&b);A、!a=b B、a!=bC、a==b D、a=b'0384B038505A2下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空ttinclude<stdio.h>main(){intm二〇,n二〇;charc;while(([1])!='\n'){if(c>='A'&&c<='V)m++;if(c>='a,&&c<='z')n++;}printf(a%d\n",m<n?[2]);)[1]A>c!=getchar()B、getchar()C、c=getchar()D、scanf("%c”,c)D、n:n[2]A、n:m B、m:nCD、n:n'0385CA038605D1下面程序段是找出整数的所有因子,填空scanf(a%d",&x);i=l;for(;[];){if(x%i=O)printf(a%3d",i);i++;0386i<=x038705D1鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空for(x=l;x<=29;x++){y=30-x;if([1])printf("%d,%d\n”,x,y);f"〜03872*x+4*y==90038805C2下面程序段的运行结果是( )for(a=l,i=-l;-l<=i<l;i++){a++;printf("%2d",a);}printf("%2d”,i);“3向-103890561若for循环用以下形式表示for(表达式1;表达式2;表达式3)循环体语句则执行语句for(i=0;iく3;i++)printf(“*”);时,表达式1执行( )次,表达式3执行( )次'03893'0390051)1下面程序的功能是计算1-3+5-7+…-99+101的值,请填空#include<stdio.h>main(){inti,t=l,s=0;for(i=l;i<=101;i+=2){[1];s=s+t;[2];}printf("%d\n",s);)“0390t=t*it="t/i039108A1以下说法正确的是( )建立函数的目的之一是,A、提高程序的执行效率B、提高程序的可读性C、减少程序的篇幅D、减少程序文件所占内存〜0391B以下正确的说法是( )A、用户若需调用标准库函数,调用前必须重新定义B、用户可以重新定义标准库函数,若如此,该函数将失去原含义C、系统根本不允许用户重新定义标准库函数D、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调〜0392B039308A1以下正确的函数定义形式是( )doublefun(intx,inty)doublefun(intx;inty)doublefun(intx,inty);D、doublefun(intx,y);〜0393A039408Al以下正确的说法是( )在C语言中A、实参和与其对应的形参各占用独立的存储单元B、实参和与其对应的形参共占用ー个存储单元C、只有当实参和与其对应的形参同名时オ共占用存储单元D,形参是虚拟的,不占用存储单元~0394A039508A1若调用ー个函数,且此函数中没有return语句,则正确的说法是( )A、没有返回值 B、返回若干个系统默认值C、能返回一个用户所希望的函数值 D、返回一个不确定的值'0395D039608A1以下不正确的说法是( )C语言规定A、实参可以是常量、变量或表达式B、形参可以是常量、变量或表达式C、实参可以为任意类型D、形参应与对应的实参类型一致'0396B039708A1以下正确的说法是( )A、定义函数时,形参的类型说明可以放在函数体内B、return后边的值不能为表达式C、如果函数值的类型与返回值类型不一致,以函数值类型为准D、如果形参与实参类型不一致,以实参类型为准0397C'039808A1C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( )A、地址传递B、单向传递C、由实参传给形参,再由形参传回给实参D、由用户指定传递方式、〇398B■039908A2C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( )A、floatB、intC、longD、double、〇399B040008A2C语言规定,函数返回值的类型是由( )A、return语句中的表达式类型所决定B、调用该函数时的主调函数类型所决定C、调用该函数时系统临时决定D、在定义该函数时所指定的函数类型所决定'0400D04010881函数由( )和( )两部分组成。'0401函数说明部分、函数体040201B2C的构造类型有( )、( )和()〇〜0402数组、结构体、共用体040308C2inta=5;fiin(intb){staticinta=10;a+=b++;printf(0%d",a);}main(){intc=20;fun(c);a+=c++;

printf("%d\n",a);}"04033025'040403B1C语言中逻辑值“真”用( )表示。'04041040508B2C程序总是从( )开始执行,其顺序结构是通过( )体现出来的。'0405主函数、书写顺序040603A2main(){unsignedchara,b,;a=73;b=~4&3;printf(4<%d%d\n”,a,b);)A,43 B、73TOC\o"1-5"\h\zC、70 D、40、〇406A'040703B1C语言的关系运算符有(>,>=,く,くラ=,!=)、逻辑运算符有( )。、〇407&&,!!,!040803B3设有定义:intx=l,y=-l!则语句:printf("%d\n”,x—++y):的输出结果是( )'0408]040903B3设intx=l,y=l;表达式(!x||一y)的值是( )0041003B30041003B3设inta=10,c=9;则表达式(-a==c++?c-a:++c)的值是)〜04101041113A3要打开ー个已存在的非空文件''file”用于修改,选择( )A、fp=fopen("file”,”r”); B、fp=fopen("file”,”w”);C、fp=fopen("file","r+"); D、fp=fopen("file","w+");"0411C041203A2设有inta=20;执行完语句a-=a*a;后,a的值是( ) A>552 B、144 C、264 D、-380〜0412D041310A3有以下程序voidfun(char*a,char*b){a=b;(*a)++;}main(){charcl='A',c2='a',*pl,*p2;pl=&cl:p2=&c2;fun(pl,p2);printf(//%c%c\nz/,cl,c2);)程序运行后的输出结果是( )A、AbB、aaC、AaD、Bb"0413A■41407A2以下能正确定义一维数组的选项是( )intnum口:ttdefineN100intnum[N];C、intnum[0..100];D、intN=100;intnum[N];"0414B041503A1设有intx=l,y=8;则表达式(x+4く=y-3く=xT)的值是( )A、1 B、〇 C、3 D、4〜0415 B041611C2#defineNAMESIZE20#defineADDRSIZE100structbirthdayintyear;intmonth;};structperson(charname[NAMESIZEJ;structbirthdaydate;charaddress[ADDRSIZE];longzipcode;);structpersonp={"YangDeZhong”,{1984,⑵,“JiLinroad/z,130021};main()(printf(/z%d,%d\n”,p.date,year,p.date,month);}-<04161984,12041711C3main(){union{chari[2];intk;}r;r.i[0]=2;r.i[l]=0;printf("%d\n",r.k);}'04172041809A3有以下程序输出结果是()#definef(x)(x*x)main(){inti1,i2;il=f(8)/f(4);i2=f(4+4)/f(2+2);printf("%d,%d\n",il,i2);)A、64,28 B、4,4C、4,3 D、64,64'0418C 041907D2以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCI!码之差。例如:输入的两个字符串分别为abcdef和abceef,则输出为T.请填空。#includemain(){charstr[100],str2[100],c;inti,s;printf("、ninputstring1:、n");gest(strl);printf("、ninputstring2:、n");gest(str2);i=0;while((strl[i]==str2[i]&&(strl[i]!=))1++;s=;printf("%d、n",s);)"0419ヘ〇'strl[i]-str2[i]042005C2以下程序运行后的输出结果是main(){inta=1,b:=2,c~3jif(c=a)printf(ヽ、%d\n”,c);else printf(ヽ、%d\n”,b);、〇4201042108D1请在以下程序第一行的下划线处填写适当内容,使程序能正确运行(double,double);main(){doublex,y;scanf("%lf%lf”,&x,&y);printf(〃%lf\n”,max(x,y));)doublemax(doublea,doubleb){return(a>b?a:b);}〜0421doublemax042210A3设有如下定义:int(*ptr)*();则以下叙述中正确的是()A、ptr是指向ー维组数的指针变量B、ptr是指向int型数据的指针变量C、ptr是指向函数的指针,该函数返回一个int型数据D、ptr是ー个函数名,该函数的返回值是指向int型数据的指针'0422C(042311A2以下对枚举类型名的定义中正确的是( )A、enuma={one,two,three};B、enuma{one=9,two= 1,three};C、enuma={“one",“two",“three”};D、enuma{"one”,"two”,"three”};〜0423B042403B2设有intx=0,y=l,a=2,b=3,c=4;则逻辑表达式(!(x=a)&&(y=b)&&c)的值( );x的值( );y的值()〜0424 〇、2、1042508B3intfunc(){staticints=0;intx=10;return(s+=x);}第2次调用函数时返回值为( )、〇42520042603B2设有intm=10,n=0,a=3,b=4:则执行完语句if((m!=n)&&(a=n)&&(b=m))m+=l:后变量b的值()'04264 042703B3设有inta=12;执行完语句a+=a-=a*a;后,a的值是( )〜0427-264■042803A2在C语言中,正确的int类型的常量是( )A、32768 B、-32769 C、"fdjs” D、OXaf、〇428D042904A2设有inta=3,b=4;语句printf("%d",(a=2)||(b=-2)):的输出结果是A、无输出 B、结果不确定 C、-1D、0'0429D043003A2设有定义:intx=l,y=-l;1则语句:printf("%d\n”,x--&++y):的输出结果是()B、0C、D、以下程序的输出的结果是(A、11#definef(x)B、3x+xC、36D、218main(){inta=6,b=2,c;c=f(a)/f(b);printf("%d\n",c);〜0431A0432043206A3以下程序的输出的结果是(A、2main()union{B、C、D、charintr;r.i[0]=l;r.C、8,A、2main()union{B、C、D、charintr;r.i[0]=l;r.C、8,printf(M%d\nM,r.i[r.k]);1/3C、int10float)D、D、b=2.5;0i;则表达式(*p++不确定printf("刎,%〇,%x\n,a,a,a);printf("%10.2f%-10.2f%.2f\n",b,b,b)printf("x/y=%d\nx*y=%d\n",x/y,x*y);printf("%d+%d=%d\n”,x,y,printf("%d*****%7.2f\n",-a*y,b*y);printf("3d%3d%3d\t”,x&&4<y,!a||y,x==10<=y); printfC123-%d,789=%d\n,,1x*=y+4,-a++); }、0435-2,177776,fffe2.502.50 2.50x/y=3x*y=3010+3=136***** 7.50010 123=70,789=2-043607C2有以下程序intsub(intn){return(n/10+n%10);}main(){intx,y;scanf("%d",&x);y=sub(sub(sub(x)));printf(<<%d\nM,y);若运行时输入:123V回车〉,程序的输出结果是、〇4366■43704A2表达式:10!=9的值是()A、rueB、非零值C、0D、1〜0437D■043807D3有一个已排好序的ー维数组。现输入ー个数,要求按原来排序的规律将它插入数组中。main(){Staticinta[ll]={l,4,6,9,13,16,19,28,40,100};inttempi,temp2,number,end,j,i;for(i=0;i<10;i++)printf("%5d",a[i]);printf('\n");scanf("%d”,&number);end=a[9];if(number>end)else(for(i=0;i<10;i++)(if(a[i]>number){ templ=a[i];a[i]=;for(j=i+l;j<ll;j++)(temp2=a[j];a[j]=tenipl;break;for(i=0;i<ll;i++)printf("%6d",a[i]);)'0438a[101=number>number、templ=temp2043907D2以下函数sstrcat()的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部。ttincludeくstring.h>voidsstrcat(char*s,char*t){intn;n=strlen(s);whi1e(*(s+n)=){s++;t++;})、〇439044008A1若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()A、函数调用可以作为独立的语句存在 B、函数调用可以作为ー个函数的实参C、函数调用可以出现在表达式中 D、函数调用可以作为ー个函数的形参〜0440D044110A2已定义以下函数fun(char*p2,char*pl){while((*p2=*p1)!=,\0*){pl++;p2++;}}函数的功能是()A、将pl所指字符串复制到p2所指内存空间B、将pl所指字符串的地址赋给指针p2C、对pl和p2两个指针所指字符串进行比较D、检查pl和p2两个指针所指字符串中是否有、〇’-0441A '044208A2ド列函数定义中,会出现编译错误的是()A、max(intx,inty,int*z)B、intmax(intx,y){*z=x>y?x:y;}{intz;z=x>y?x:y;returnz;)C、max(intx,inty)D、intmax(intx,inty){intz; {return(x>y?x:y);}z=x〉y?x:y;return(z);*'0442B044303A2设有inta=12;执行完语句a-=a+=a*a:后,a的值是( )A、0 B、144 C、264 D、-264'0443A044402Al在c语言中,运算对象必须是整型数的运算符是( )A、%B、\C、%和、D、**〜0444A044503A2有以下程序main(){inti=l,j=2,k=3;if(i++==l&&(++j==3||k++==3))printf("%d%d%d\n”,i,j,k);}程序运行后的输出结果是( )A、123B,234C、223D、233“0445D044603A2有以下程序main()(inta,b,d=25;a=d/10%9;b=a&&(_1);printf("%d,%d\n”,a,b);)程序运行后的输出结果是( )A、6,1B、2,1C、6,0D、2,0'0446B044703B3设x为float型变量,y为double型变量,a为int型变量,b为long型变量,c为char型变量,则表达式x+y*a/x+b/y+c的结果类型为()〇〜0447double或双精度044804B3假设变量x和y均为整型,以下语句可以不借助任何变量把x、y中的值进行交换,请填空。 x+=( );y=x-( );x-=( )'0448y、y、y044909A3请选出可用作C语言用户标识符的ー组标识符( )A、void,define,WORDB、a3_b3,_123,IFC、FOR, abc,CaseD、2a,Do,Sizeof、〇449B04500782C语言中。表示逻辑( )〇、〇450假045103A2数字字符0的ASCII值为48J若有以下程序main(){chara-1',b='2';printf("%c,",b++);printf("%d\n",b-a);)程序运行后的输出结果是( )A、3,2B、50,2C、2,2D、2,50〜0451C045201A2ー个完整的可运行的C源程序是().A、至少要由一个主函数和(或)ー个以上的辅函数构成B、由一个且仅由一个主函数和零个以上(含零)的辅函数构成C、至少要由一个主函数和一个以上的辅函数构成D、至少由一个且只有一个主函数或多个辅函数构成、〇452B 045310A2C语言的说明语句"char*Iine[5];"的含义是指().line是ー个数组,其数组的每ー个元素是指向字符的指针line是ー个指针,指向ー个数组,数组的元素是为字符型C、A和B均不对,但它是C语言正确的语句D、C语言不允许这样的说明语句〜0453A045403A1设有下面的程序段:inti,j;floatx,y;chara[20],b[20];scanf("%3d%f%2s",&i,&x,a);scanf("%d%2f%s,z,&j,&y,b);当键盘输入如下时:3704967C658426FB其执行结果是()A、i=370x=496.0a=7Cj=658y=42.0b=6FBB、i=370x=4.0a=96j=7y=C6b=5C、i=370x=6.0a=7Cj=658y=42b=6D.i=370x=496a=7Cj=658y=42b=6FB'0454A045511A2请读下面初始化程序段:staticcharA[]="ABCDEF”;staticcharB[]={'A','B','C','D','E','F'};则下列叙述正确的是:()A、A和B完全相同B、A和B只是长度相等C、A和B不相同,A是指针数组D、A数组长度比B数组长へ〇455D 045610A2指针引用可以出现在赋值号左端。若pi指向x,那么・pi=O,即将x置为〇;问:*pi+=l;是把x的值增加1,这等价于:()A、・pi++B、(*pi)++C^pi+=lD、pi=pi+l'0456B045706A2请读下列函数:intstrsub(char*a){intn=0;while(*a++)n++;return(n);)若此函数调用时,字符串a赋值为"ABCDEF”,则返回值是:()A、6B、7C,8D、9~0457A '045807A2请读下面程序:#include<stdio.h>chara[2][3]={{'A','B','C'},{'D','E','ド},main(){inti;for(i=0;i<3;i++)printf(*%d*,*(*(a+i)+i));程序的输出结果为()A,AEIB、不确定的值C,ABCD、分别为a[i,i]的地址、0458A045908A2若已知:intx;intyロ;则下面表达式合法是:()A、&xB、&(x+3)C、&5D、&y'0459A"046003C2将下题中各打印语句的输出结果填写在指定位置.#definePRINT(int)printf(*%d\n*,int)#include<stdio.h>voidmain(void)intx,y,z;x=l,y=l,z=0;x=x&&yz;PRINT(x);/*(1)*/PRINT(x||!y&&z);/*(2)―*/PRINT(y);/*(3)*/PRINT(z);/*(4)*/x=y=l;z=x++T;z+=-(x++)+(++y);PRINT(z);/*(5) */PRINT(x);/*(6)*/PRINT(y);/*(7)*/x=3,y=2,z=l;x=y++>=x&&x-yニニz;PRINT(x);/*(8) */PRINT(y);/*(9)*/y*二z二x+(z+2);PRINT(y);/*(10)*/PRINT(z);/*(11)*/x二y二z二1;PRINT(—x&&++y||z++);/*(12)—*/PRINT(x);/*(13)*/PRINT(y);/*(14)*/PRINT(z);/*(15)*/x=9,y=6,z=5;x=((x+y)%z>=x%z+y%z)?1:0;PRINT(x); /* (16) */0)、0460(1)1(2)1(3)1(4)0(5)0(6)3(7)2(8)0(9)3(10)9(11)3(12)1(13)0(14)1(15)2(16)0046106C2当好27b=63时,写出下面程序的运行结果.ttinclude<stdio.h>intgbs(inta,intb)(intc;a=a>0?a:-a;b=b>O?b:-b;c=a*b;if(c=0)return(0);while(a!=b)if(a>b)a-=b;elseb-=a;return(c/a);)intgys(inta,intb)(if(a*b=0)return(0);a=a>0?a:-a;b=b>O?b:-b;while(a!=b)if(a>b)a-=b;elseb一二a;return(a);}voidmain(void)(inta,b,c,d;scanf("%d%d”,&a,&b);c=gbs(a,b);d=gys(a,b);printf(〃a二%db二%dgbs二%dgys二%d\n”,a,b,c,d);"0461a=27b=63gbs=189gys二9046206C2执行下面程序后屏幕上显示的结果是什么?ttinclude<stdio.h>intf(inta)intb=0;staticc=3;b++,c++;return(a+b+c);voidmain(void)intx=3,i;for(i=0;i<3;i++)printf(级d*,f(x));04628910046303C2下面程序产生的结果是什么? (3分)#include<stdio.h>voidmain(void)(printf(z,\n%d%x%〇”,19,19,19);printf("\n%d%x%〇”,Oxlc,Oxlc,Oxlc);printf("\n\n");191323ヽ28lc34■046403A2main(){inta=l,b=2,m=0,n=0,k;k=(n=b>a)II(m=a〈B);printf("%d,%d\n",k,m);)程序运行后的输出结果是()A、0,0B、0,1C,1,0D、1,1、〇464C 046501B2C语言中使用的变量都必须先( ),后()〇'0465定义、使用046603B1C语言中逻辑值“假”用( )表示,“真”用()表示。'04660、1046708B1C程序执行的起点是( )〇〜0467main()函数046803B2若x是int型变量,且x=6,则表达式(x%2+(x+l)%2)的值为()〇'04681046910A1若有定义:int*p[3];.则以下叙述中正确的是( )A、定义了一个基类型为int的指针变量p,该变量具有三个指针B、定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针C、定义了一个名为・p的整型数组,该数组含有三个int类型元素D、定义了一个可指向ー维数组的指针变量p,所指ー维数组应具有三个int类型元素"0469B047003B2若k为int型变量且赋值11。请写出运算kー后表达式的值()和变量的值( )。〜0470 ]1、10047103B2若a、b和c均是int型变量,则执行下面表达式后,c值为()〇c=(a=5)-(b=2)+a〜04718047210A2有以下程序段main(){inta=5,*b,**c;c=&b;b=&a;)程序在执行了c=&b;b=&a;语句后,表达式:**c的值是A、变量a的地址B、变量b中的值 C、变量a中的值 D、变量b的地址'0472C047307A2数组名作为实参数传递给函数时,数组名被处理为()A、该数组的长度 B、该数组的元素个数C、该数组的首地址 D、该数组中各元素的值〜0473C"047410A2设有说明int(*ptr)[M];,其中标识符ptr是( )A、M个指向整型变量的指针 B、指向M个整型变量的函数指针C、ー个指向具有M个整型元素的ー维数组的指针D、具有M个指针元素的ー维指针数组,每个元素都只能指向整型量へ0474C047503A2TOC\o"1-5"\h\z设有intx=5,y=8;则表达式(x+5く=y-3<x-5)的值是( )A、1 B、0 C、3 D、4~0475B'047603A2根据下面的定义,能输出字符串“Li”的语句是( )structperson{charname[10];intage;}class[10]={''Zhangs,18,、、Li〃,17,、、Ma〃,18,''Huang”,18);Aヽ printf(''%s\nz,,class[2].name); Bヽprintf(''%s\nz,,class[2].name[0]);Cヽ printf(''%s\nzz,class[l].name); Dヽprintf(''%s\nzz,class[1].name[0]);'0476C '0477O9A2以下程序的输出结果是〇A、!1B、12C、13D、15Sinclude''stdio.hzz#defineFUDGF(y)2.84+y#definePR(a)printf(''%dzz,(int)(a))

#definePRINT1(a)PR(a);putchar('\nz)main()intx=2;PRINTl(FUDGF(5)*x);'0477B047803A2main()intp[8]={ll,12,13,14,15,16,17,18},i=0,j=0;j+=p[i];while(i++<7)if(p[i]%2)printf("%d\n”,j);j+=p[i];程序运行后的输出结果是(A、BA、B、C、D、42455660'0478B■047910A2变量P为指针变量,若P=&a,下列说法不正确的有( )A、A、&*p==&aB、・&a==aC、(*p)++==a++D、・(p++)==a++〜0479D■048003A2执行下面的语句后,表达式・(p[0]+1)+**(q+2)的值为()inta[]={5,4,3,2,1},*pロ={a+3,a+2,a+1,a},**p=q;A、8 B、7 p、6 D、5、〇480D 048108A2已知P、pl为指针变量,a为数组名,i为整形变量,下列赋值语句中不正确的是()A^p=&i;B、p=a;C、p=&a[i];D、p=10; E、p=pl;〜0481D 048203C2main()(inta=-3,x=10,y=3;floatb=2.5;printf(zz%d,%o,%x\n/z,a,a,a);printf(/z%10.2f%-10.2f%.2f\nz,,b,b,b);printf(zzx/y=%d\nx*y=%d\nzz,x/y,x*y);printf(zz%d+%d=%d\nzz,x,y,x+y);}、0482-3,177775,fffd2.502.50 2.50x/y=3x*y=3010+3=13048306C2#include<stdio.h>main(){inti;for(i=0;i<2;i++)as();)as(){intlv=0;staticintsv=0;printf(Mlv=%d,sv=%d/f,Iv,sv);lv++;sv++;return;)'0483lv=0,sv=0lv=0,sv=l048403C2main()(inti,x,y,t;chara,b;scanf(ヽ、%d〃,&i);if(i>10)(printf(''%x\tz,,i);a-i&OxOOOf;b=(i»8)&0x00ff;printf(''%x\t%x\nz,,b,a);else{x=2;y=4;t=x+i%3*(int)(x+y)%2/4;printf(''%d\nr,,t);问题1:当程序运行时输入67之后,执行的输出结果是问题2:当程序运行时输入7之后,执行的输出结果是〇"048443 0 3, 2048506C2#include<stdio.h>voids(intb[],intn){inti,j,t,fig;for(i=0;i<n-l;i++){for(flg=0,j=0;j<n-i-l;j++)if(b[j]>b[j+l]{t=b[j];b[j]=b[j+l];b[j+l]=t;flg=l;)if(!fig)break;main(){inti,a[]={11,9,2,5,3,7};s(a,6);for(i=0;i<6;i++)printf(''%4d,z,a[i]);printf(''\n");}〜04852357911048608E2从键盘输入ー个不多于4位的正整数,编程求该数各位数值之和。如:输入3126时,输出12。'0486main(){intm,a,b,c,d,s=0;scanf(''%d",&m);a=m/1000;b=(m-a*1000)/100;c=(m-a*1000-b*100)/10;d=m%10;s=a+b+c+d;printf(、、%d\n”,s);1048703A2C语言中最简单的数字类型包括()A、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型〜0487B04880182ー个C语句中至少包含一个()〇、〇488;或分号■048906A2要求以下程序的功能是计算:s=1+1/2+1/3+……+1/10main(){intn;floats;s=1.0;for(n=10;n>l;n—)s=s+l/n;printf(n%6.4Ann,s);)程序运行后输出结果错误,导致错误结果的程序行是()A、s=1.0; B、for(n=10;n>l;n—)C、s=s+l/n; D、printf("%6.4f\n",s);、〇489C 049013A2要打开一个已存在的非空文件“me”用于修改,选择()A、fp=fopen("file"r"); B、fp=fopen("file"w");C、fp=fopen("file" ,"r+"); D、fp=fopen("file" ,"w+");'0490C049106D2

下面程序的功能是将ハ进制正整数组成的字符串转换为十进制整数,请选择正确内容填空。#include<stdio.h>main(){char*p,s[6];intn;p=s;gets(p);n=①;while(_②!='、〇') n=n*8+*p-‘〇';printf("%d\n,,,n);D、・p+'0D、pA、〇 BD、・p+'0D、pA、*p B、・p++ C、*(++p)"0491c>c'049210A2经过下面的语句inti,a[10],*p;定义后,下列语句中合法的是()〇A、p=100; B、p=a[5J;C、p=a[2]+2;D、p=&(i+2);E、p=a+2;〜0492E '049308A2以下程序的输出结果是( )。A、11,10 B、12.00C、21.10 D、!.10voidfun(float*pl,float*p2,float*s)(s=(float*)malloc(l,sizeof(float));*s=*pl+*p2++;}main()floata[2]={1.1,2.2},b[2]={10.0,20.0},*s=a;fun(a,b,s);printf("%5.2f\n",*s);}〜0493D定义静态双精度实型变量flag;〜0494staticdoubleflag;049510B2定义指向具有5个数据元素的长整型数组的指针变量p〜0495longint(*p)[5];049601B2定义类型COLOR为具有五种颜色(用英文表示颜色)的枚举类型。'0496typedefenumcolor{red,blue,white,green,yellow}COLOR;■049706D2以下程序的功能是输出如下形式的方阵,请填空。TOC\o"1-5"\h\z13 14 15 169 10 11 125 6 7 812 3 4main(){inti,j,x;for(j=4;j;j-){for(i=1;i<=4;i++){x=(j-1)*4+;primf("%4d”,x);Jprintf("\n”);})〜0497>0、i-049806C2本程序运行时,当分别输入字符串"ABCD”和“1234”时,输出结果是?charcon(string1,string2,string)charstring1[J,string2[J,string[J;(inti,j;for(i=0;stringl[il!=,\0,;i++)string[i]=stringl[ij;for(j=0;string2[jj!='、〇';j++)string[i+jj=string2[j];string[i+j]='\O';}main()charsl[100],s2[100],s[100];scanf("%s",sl);scanf("%s",s2);con(sl,s2,s);printf("%s\n",s);)〜0498ABCD1234049913A1下列关于C语言数据文件的叙述中正确的是()A、文件由ASCII码字符序列组成,C语言只能读写文本文件B、文件由二进制数据序列组成,C语言只能读写二进制文件C、文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D、文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件〜0499D050013A2C语言标准库函数"fgets(string,n,fp)的功能是( )〇A、从文件fp中读取长度为n的字符串存入指针string指向的内存B、从文件fp中读取长度不超过n-1的字符串存入指针string指向的内存C、从文件fp中读取n个字符串存入指针string指向的内存D、从文件fp中读取长度不超过长度为n的字符串存入指针string指向的内存*0500B000103A1设inta=2,b=2;则++a+b的结果是(A、2 B、3 2、4 D、5'0001D000203A1运算符&&代表()A、按位与 B、逻辑与C、取地址 D、逻辑或〜0002B000308E2请编写ー函数intfun(floats[],intn),它的功能是:求高于平均分的人数,并作为函数值返回。数组s中存放n个学生的成绩。〜0003intfun(floats[],intn){floatavcニ〇;inti,j=0;for(i=0;iくn;i++)ave+=s[i];ave/=n;for(i=0;i<n;i++)if(s[i]>ave)j++;return(j);000405A2为了避免嵌套的if-else语句的二义性,c语言规定else总是与()组成配对关系。A、缩排位置相同的ifB、在其之前未配对的ifC、在其之前未配对的最近的ifD、同一行上的if、〇004C 000503A1设intm=l,n=2:则++m==n的结果是()A、〇B、1C、2D、3“0005B '000604A2已知:inta,b;用语句scanf("刎%d”,&a,&b);输入a,b的值时,不能作为输入数据分隔符的是()A、, B、空格C、回车D、[TAB]、〇006A000708A1调用函数strlen("abcd\0ef\0g")的返回值是()A、9B、7C、6D、4、〇007D 000808A1当ー个函数无返回值时,函数的类型应定义为()A、void B、任意C^int D、无'0008A000908A1在ー个被调用函数中,关于return语句使用的描述,错误的是()A、被调用函数中可以不用return语句B、被调用函数中可以使用多个return语句C、被调用函数中,如果有返回值,就一定要有return语句D、被调用函数中,ー个return语句可返回多个值给调用函数、〇009D001005A2设a=l,b=2,c=3,d=4,则表达式:aくb?a:cくd?a:d的结果是()A、4B、3C、2 D、1'0010D001103E1编写函数,把S字符串中所有字母改写成该字母下ー个字母。〜0011voidchg(char*s){inti,j,k;k=strlen(s);for(i=0;i<k;i++){if(s[i]==z'I|s[i]=='Z')s[i]=s[i]-25;elseif(isalpha(s[i]))s[i]+=l;'001207A1设有数组定义:charstrロ="jlnu";则数组str所占的字节数为()A、4个字节 B、5个字节C、6个字节 D、7个字节〜0012B001304A1以下程序的输出结果是()main(){intx=10,y=10;printf(H%d%d”,x―,―y);)A、!010B、9 9 C>0 10D、10 9〜0013D001412A2设intb=2;表达式bくく2的值是()B、2AB、2C、4 D、80014D

001510A1有如下程序段:int*p,a=40,b=6;a=*p+b;执行该程序段后,a的值为()。B、41DB、41D、编译出错a,b;p=&a;则语句“b=*p;"中的运算符“*”的含义是 C、40、〇015D001610A1已知:int*p,A、指针定义B、乘法运算符 C、取指针内容D、取变量地址、〇016C001710A2以下程序运行后,a的值是()A、4B、1C、〇D、运行时出错,a无定值main(){inta,k=4,m=6,*pl=&k,*p2=&m;a=pl==&m;printf("如",a);〜0017C0018〜0017C001801A1以下选项中不合法的用户标识符是(A、st.n B,fileC^Main D、GO'0018A001910A1已知intx=3,*q=&x;则&x的值是( A,变量x的地址值 B、无意义'0019A 0020I0A2)0)C、指针q的内容D,3说明语句"float(*p)(int);"的含义是()A、p是ー个指向ー维数组的指针变量B、p是指针变量,指向ー个整型数据C、p是ー个指向函数的指针,该函数的返回值是ー个浮点型,且有一个整型数据作参数D、以上都不对

〜0020c002103A1执行下列程序的结果是()〇Sinclude<stdio.h>main()(floatx=3,y;y=++x*x++;printf y);}A、9.000000B、16.000000C、1.000000错误〜0021B 002203A1ド列属于字符型常量的是()A、’AA' B、“B” £、’\117' D、'\x93f、〇022C 002305A1以下程序中,while循环的循环次数是()。ttinclude<stdio.h>main(){inti=0;while(i<10){if(i<l)continue;if(i==5)break;i++;))A、1B、10 C、6 D、死循环,、〇023D002401A1以下选项中合法的用户标识符是()。A、int B、a#C、5mem D、_243〜0024D002505A2以下程序的输出结果是()〇D、程序D、程序有不能确定次数main(){inta二〇,i;for(i=l;i<5;i++){switch(i){case0:case3:a+=2;case1:CHS62:&+=3;default:a+=5;))printf(“知、n",a);}A、31 B、13 C、10 D、20、〇025A'002604A1ド列程序的运行结果是()=ttinclude<stdio.h>main( ){inta=2,c=5;printf("a=%d,b=%d\n//,a,c);)A、a=%2,b=%5B、a=2,b=5C、a=d,b=dD、a=%d,b=%d~0026B002703B1表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为〇~0027int型002803B1表达式3&4的值为〇表达式314的值为〇表达式3&&4的值为“0028〇、7,1'002906A1以下循环体的执行次数是()〇#include<stdio.h>main(){inti=l,j;doprintf(//%d\n,/,i);i++;}while(i<=0);A、3B、2C、1D、〇'0029C'003005Al有以下程序:#include<stdio.h>inta=3;main()(ints=0;(inta=5;s+=a++;printf(,z%d%d\n〃,a,s))s+=a++;printf(〃%d%d\n”,a,s);)程序运行后的输出结果是()〇A、65 B,56 C、66 D、5684 611 84 87'0030A003103B1有如下程序片段:inta,b,c;printf(inputa,b,c:〃);scanf(z,%d%d%d,z,&a,&b,&c);欲输入a=l,b=2,c=3,正确的输入形式为:〇、〇031定义、使用003201B1C程序执行过程生成的3种文件及扩展名为_ ー、ー ー和一'0032・c、•obj>.exe003307B1字符串“ab\034\\\x79"的长度为〇'00335003406A1有如下程序ttinclude<stdio.h>main(){intn=9;while(n>6){n—;printfぐ‘%d",n);})该程序段的输出结果是()〇A、987B、876 2、8765D、9876'0034B003507B1若有定义:charc=,\010';则变量c中包含的字符个数为〇'00351个'003607A1设有数组定义:chararray[]China":则数组array所占的空间为()=A、4个字节 B、5个字节C、6个字节 D、7个字节'0036C003707A2下列程序执行后的输出结果是()〇#include<stdio.h>main(){charstr[10];strcpy(str,jsjxy");strcpy(str,,zjlnu");printf(〃%s\n〃,str);)A、jsjxy B、jlnuC、jlnuy D>jlnujsjxy'0037C003811B1设有以下结构类型说明和变量定义,则变量a在内存所占字节数是.structstud{charnum[6];ints[4];doubleave;}a;'003822003908D2函数fun的功能是:使一个字符串按逆序存放。请填空。voidfun(charstr[]){charm;inti,j;for(i=0,j=strlen(str);i<( );i++,j-){m=str[i];str[i]=(printf("%s\n",str);'0039jヽstr[j-l]004009C2以下程序的输出结果是( )。#defineMAX(x,y)(x)>(y)?(x):(y)main(){inta=5,b=2,c=3,d=3,t;t=MAX(a+b,c+d)*10;printf("%d\n",t);)、〇040700410481条件“20くxく30或xくー100”的C语言表达式是(、〇041(x>20&&x<30)||(x<-100)004207A2下列程序执行后的输出结果是()。#include<stdio.h>voidfund(inti);voidfunc2(inti);charst口二〃hello,friend!〃;voidfund(inti){printf("祀〃,st[i]);if(i<3){i+=2;func2(i);})voidfunc2(inti){prin

温馨提示

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

评论

0/150

提交评论