您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > c语言基础练习题及答案
c语言基础练习题及答案一、单项选择题1.C语言源程序文件经过C编译程序编译连接之后生成一个后缀为__C____的文件。A、”.c”B、“.obj”C、“.exe”D、“.bas”2.以下选项中不正确的整型常量是_C____。A、12LB、-10C、1,900D、123U3.表达式___C___的值是0。A、3%5B、3/5.0C、3/5D、354.表达式!(x0||y0)等价于__D___。A、!x0||!y0B、!(x0)||!(y0)C、!x0&&!y0D、!(x0)&&!(y0)5.若变量已正确定义并赋值,表达式__D____不符合C语言语法。A、4&&3B、+aC、a=b=5D、int(3.14)6.若变量已正确定义,执行语句scanf(%d%d%d,&k1,&k2,&k3);时,___B___是正确的输入。A、2030,40B、203040C、20,3040D、20,30,407.执行语句printf(”__D____”,2);将得到出错信息。A、%dB、%oC、%xD、%f8.设变量定义为“ints[]=hello\nworld\n;”,则数组s中有__B____个元素。A、12B、13C、14D、159.设变量定义为“inta[2]={1,3},*p=&a[0]+1;”,则*p的值是___B__。A、2B、3C、4D、&a[0]+110.若变量已正确定义并赋值,表达式-k++等价于__A____。A、-(k++)B、(-k)++C、-(k+1)D、-(++k)11.在C语言程序中,在函数内部定义的变量称为__D____。A、全局变量B、全程变量C、外部变量D、内部变量12.若x是整型变量,表达式(x=10.0/4.0)的值是__D___。A、2.5B、2.0C、3D、213.对于以下的变量定义,表达式__A____是正确的。structnode{chars[10];intk;}p[4];A、p-k=2B、p[0].s=“abc”C、p[0]-k=2D、p-s=‘a’14.下列运算符中,优先级从高到低依次为__D___。A、&&,!,||B、||,&&,!C、&&,||,!D、!,&&,||15.下列程序段的输出结果是__B___。int*p,*q,k=1,j=10;p=&j;q=&k;p=q;(*p)++;printf(%d,*q);A、1B、2C、10D、1116.以下各选项企图说明一种新的类型名,其中正确的是水量(C)A)typedefv1int;B)typedefv2=int;C)typedefv1intv3;D)typedefv4:int;17.以下选项中,非法的字符常量是(C)A)‘\t’B)‘\17’C)“n”D)‘\xaa’18.以下程序的输出结果是(C)main(){inti,a[10];for(i=9;i=0;i--)a[i]=10-i;printf(“%d%d%d”,a[2],a[5],a[8]);}A)258B)741C)852D)36919.以下程序的输出结果是(B)main(){charst[20]=“hello\0\t\\\”;printf(%d%d\n”,strlen(st),sizeof(st));}A)99B)520C)1320D)202020.以下程序的输出结果是(D)main(){inta,b;for(a=1,b=1;a=100;a++){if(b=10)break;if(b%3==1){b+=3;continue;}}printf(“%d\n”,a);}A)101B)6C)5D)421.以下程序的输出结果是(D)unionmyun{struct{intx,y,z;}u;intk;}a;main(){a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf(%d\n”,a.u.x);}A)4B)5C)6D)022.以下程序段的输出结果是(A)chars[]=\\141\141abc\t;printf(%d\n,strlen(s));A)9B)12C)13D)1423.以下程序的输出结果是(B)main(){charch[3][5]={AAAA,BBB,CC};printf(\%s\\n,ch[1]);}A)AAAAB)BBBC)BBBCCD)CC24.不合法的main函数命令行参数表示形式是(C)A)main(inta,char*c[])B)main(intarc,char**arv)C)main(intargc,char*argv)D)main(intargv,char*argc[])25.有以下程序main(){char*s[]={one,two,three},*p;p=s[1];printf(%c,%s\n,*(p+1),s[0]);}执行后输出结果是(C)A)n,twoB)t,oneC)w,oneD)o,two26.设有如下说明typedefstruct{intn;charc;doublex;}STD;则以下选项中,能正确定义结构体数组并赋初值的语句是(A)A)STDtt[2]={{1,'A',62},{2,'B',75}};B)STDtt[2]={1,A,62},2,B,75};C)structtt[2]={{1,'A'},{2,'B'}};D)structtt[2]={{1,A,62.5},{2,B,75.0}};27.若变量c为char类型,则能正确判断出c为小写字母的表达式是(D)。A)'a'=c='z'B)(c='a')||(c='z')C)('a'=c)and('z'=c)D)(c='a')&&(c='z')二、填空题1.设ch是字符型变量,判断ch为英文字母的表达式是:(ch=’A’&&ch,=’Z’)||(ch=’a’&&ch=’z’)__。2.计算下列分段函数的if语句是_if(x0)y=1;elseif(x=0)y=0;elsey=-1;___。1x0y=0x=0-1x03.表达式!!5的值是__1____。4.下列程序段的输出结果是___12___。printf(%xn,(0x191)&0x17);5.下列程序段的输出结果是__k=4s=6___。intk,s;for(k=0,s=0;k10;k++)if(sk)break;elses+=k;printf(k=%ds=%d,k,s);6.下列程序段的输出结果是__15___。#defineMIN(x,y)(x)(y)?(x):(y)printf(%d,10*MIN(10,15));7.下列程序在运行时可能会出错,原因是__指针变量s未赋初值____。#includevoidmain(){char*s;gets(s);puts(s);}8.下列程序段的输出是___60__。#includeintf(intm){staticintk=0;ints=0;for(;k=m;k++)s++;returns;}voidmain(){ints1,s2;s1=f(5);s2=f(3);printf(%d%d\n,s1,s2);}9.下列程序段的输出结果是__fgh___。char*st[]={abcd,efgh,ijkl,mnop};printf(%s,*(st+1)+1);10.用typedef定义一个含10个元素的整型数组ARR。typedefintARR[10];11.以下程序调用findmax函数返回数组中的最大值,请填空。findmax(int*a,intn){int*p,*s;for(p=a,s=a;p-aif(*p*s)s=p;return(*s);}main(){intx[5]={12,21,13,6,18};printf(%d\n,findmax(x,5));}三、程序(段)填空题1.设变量x,y,z已正确定义和赋值,请仔细阅读程序段A,然后在程序段B中填入正确的内容,使程序段A和程序段B有相同的功能。程序段A程序段Bx=x+y;y=x-y;x=x-y;z=x+y;z=x;x=y;y=z;z=x+y;2.请仔细阅读函数f1,然后在函数f2中填入正确的内容,使函数f1和函数f2有相同的功能。char*f1(chars[],chart[]){intk;for(k=0;t[k]!='';k++)s[k]=t[k];s[k]='';returns;}char*f2(char*s,char*t){char*p=s;while((*p++=*t++)!='');returns;}===========================================================一、单项选择题1.___D___是合法的用户自定义标识符。A、b-bB、floatC、D、_isw2.若变量已正确定义并赋值,表达式___B___不符合C语言语法。A、a*b/c;B、3.14%2C、2,bD、a/b/c3.___C__是不正确的字符常量。A、'n'B、'1'C、aD、'101'4.在C程序中,用___B__表示逻辑值“真”。A、1B、非0的数C、非1的数D、大于0的数5.__C____把x、y定义成float类型变量,并赋同一初值3.14。A、floatx,y=3.14;B、floatx,y=2*3.14;C、floatx=3.14,y=x=3.14;D、floatx=y=3.14;6.若变量已正确定义,表达式___C___的值不是2。A、2&3B、11C、a==2D、1^37.若变量已正确定义,语句“if(ab)k=0;elsek=1;”和__C____等价。A、k=(ab)?1:0;B、k=ab;C、k=a=b;D、a=b?0:1;8.设变量定义为“inta,b;”,执行下列语句时,输入_D____,则a和b的值都是10。scanf(a=%d,b=%d,&a,&b);A、1010B、10,10C、a=10b=10D、a=10,b=109.下列程序的输出结果是__D___。fun(inta,intb,intc){c=a*b;}voidmain(){intc;fun(2,3,c);printf(”%dn”,c);}A、0B、1C、6D、无法确定10.在C程序中,若对函数类型未加说明,则函数的隐含类型为__A___。A、intB、doubleC、voidD、char11.表达式strlen(”hello”)的值是___B____。A、4B、5C、6D、712.设变量定义为“inta[4];”,则表达式__D____不符合C语言语法。A、*aB、a[0]C、aD、a++13.设变量定义为“intx,*p=&x;”,则&*p相当于__A___。A、pB、*pC、xD、*&x14.若变量已正确定义,_A___不能使指针p成为空指针。A、p=EOFB、p=0C、p=’’D、p=NULL15.对于以下的变量定义,表达式__D____不符合C语言语法。structnode{intlen;char*pk;}x={2,right},*p=&x;A、p-pkB、*p.pkC、*p-pkD、*x.pk16.有如下程序intrunc(inta,intb){return(a+b);}main0{intx=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%\d\n”,r);}该程序的输出的结果是(D)A)12B)13C)14D)1517.对于基类型相同的两个指针变量之间,不能进行的运算是(C)A)B)=C)+D)-18.有如下程序longfib(intn){if(n2)return(fib(n-1)+fib(n-2));elsereturn(2);}main0{printf(“%d\n”,fib(3));该程序的输出结果是(B)A}2B}4C}6D}819.有如下定义structperson{charname[9];intage;};strictpersonclas
本文标题:c语言基础练习题及答案
链接地址:https://www.777doc.com/doc-5305282 .html