C语言期末练习题.docx
《C语言期末练习题.docx》由会员分享,可在线阅读,更多相关《C语言期末练习题.docx(29页珍藏版)》请在冰豆网上搜索。
C语言期末练习题
长江大学试卷院(系、部)专业班级姓名学号
…………….…………………………….密………………………………………封………………..…………………..线……………………………………..
一、选择题
1._____是C语言合法的常量。
(A).45(B)078(C)25.6e3.4(D)‘xy’
2.一个程序的执行是从。
(A)本程序的main函数开始,到main函数结束
(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
(C)本程序的main函数开始,到本程序文件的最后一个函数结束。
(D)本程序文件的第一个函数开始,到main函数结束。
3.以下叙述正确的是。
(A)在C程序中,main函数必须位于程序的最前面。
(B)C程序每行中只能写一条语句。
(C)C语言本是没有输入输出语句。
(D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
4.以下叙述不正确的是。
(A)逗号运算符的运算级最低。
(B)ABC和abc是两个不同的变量。
(C)若a和b类型相同,在执行a=b后,b的自身值不变。
(D)‘a’和“a”是完全等价的常量。
5.intx=3,y=2;则表达式x+=x*=y+8的值为。
(A)28(B)30(C)60(D)17
6.设x=2.7,a=8,y=4.9,算术表达式x+a%3*(int)(x+y)%5/3的值为。
(A)2.7(B)3.7(C)4.7(D)4.03
7.执行下面两个语句后,输出的结果为_____。
charc1=98;
printf(“%d%c”,c1,c1-32);
(A)9766(B)98b(C)b66(D)98B
8.执行下面语句后的结果为。
y=10;x=y++;
(A)x=10,y=10(B)x=11,y=11(C)x=10,y=11(D)x=11,y=10
9.Charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型是。
(A)double(B)char(C)int(D)float
10.C语言中要求操作数必须是整数的运算符是。
(A)/(B)%(C)!
=(D)=
11.用scanf(“%d,%d”,&a,&b)输入数据时,下面输入法中正确的是。
(A)123,4(B)1234(C)123;4(D)
12.以下关于运算符优先顺序的描述中正确的是________
(A)关系运算符<算术运算符<赋值运算符<逻辑与运算符
(B)逻辑与运算符 <关系运算符< 算术运算符<赋值运算符
(C)赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符
(D)算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符
13.下列程序段中,功能与其它程序段不同的是。
(A)for(i=1,p=1;i<=5;i++)p*=i;
(B)for(i=1;i<=5;){p=1;p*=i;i++;}
(C)i=1;p=1;while(i<=5){p*=i;i++;}
(D)i=1;p=1;do{p*=i;i++;}while(i<=5);
14.C语言规定else总是与配对。
(A)缩进位置相同的if(B)同一行上的if
(C)其之前最近的if(D)其之后最近的if
15.以下程序的运行结果为______。
main( )
{intn;
for(n=1;n<=10;n++)
{if(n%3==0)continue;printf(“%d”,n);}
}
(A)12457810(B)369(C)12(D)12345678910
16.设x和y均为int型变量,则语句x+=y;y=x-y;x-=y;的功能是。
(A)把x和y按从大到小排列(B)把x和y按从小到大排列
(C)无确定结果(D)交换x和y中的值
17.变量的指针,其含义是指该变量的_____
(A)值(B)地址(C)名(D)一个标志
18.以下函数调用语句中含有个实参。
func((e1,e2),(e3,e4,e5));
(A)2(B)3(C)5(D)语法错误
19.以下正确的描述是________
(A)continue语句的作用是结束整个循环的执行
(B)只能在循环体内和switch语句体内使用break语句
(C)在循环体内使用break语句或continue语句的作用相同
(D)goto语句只能用于退出多层循环
20.以下程序运行的结果是。
main()
{inta=2,b=3,c=2;
if(a
if(ac--;elsec+=1;printf(“%d\n”,c);}(A)0(B)1(C)2(D)321.inta[4]={2,3,4},I;i=a[0]*a[1]+a[2]*a[3];i的值为。(A)2(B)4(C)6(D)1022.以下正确的函数定义形式是。(A)doublefun(intx,inty);(B)doublefun(intx;inty)(C)doublefun(intx,inty)(D)doublefun(intx,y)23.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是。(A)float型(B)int型(C)long型(D)double型24.若有定义inta[4]={1,2,3};请问a[a[a[0]]]的值是。(A)1(B)2(C)3(D)425.以下正确的描述是____________(A)函数的定义可以嵌套,函数的调用不可以嵌套(B)函数的定义不可以嵌套,函数的调用可以嵌套(C)函数的定义和函数的调用均不可以嵌套(D)函数的定义和函数的调用均可以嵌套26.以下不正确的说法是____________(A)在函数内的复合语句中定义的变量在本函数范围内有效(B)在不同函数中可以使用相同名字的变量(C)形参是局部变量(D)函数调用结束后,静态局部变量的值仍然保留。27.已有定义:intx=3,y=4,z=5;则表达式!(x+y)+z-1&&y+z/2的值是。(A)6(B)0(C)2(D)128.main(){intn[4]={1,2,3,4},k;for(k=0;k<4;k++){if(k/2)break;n[k]++;}printf(“%d\n”,n[++k]);}执行后输出的结果是。(A)2(B)3(C)4(D)529.判断字符串是否相等,应当使用。(A)if(a==b)(B)if(a=b)(C)if(strcpy(a,b))(D)if(!strcmp(a,b))30.以下程序运行结果是。voidsub(intx,inty,int*z){*z=y-x;}main(){inta,b,c;sub(11,7,&a);sub(5,a,&b);sub(a,b,&c);printf(“%d,%d,%d\n”,a,b,c);}(A)-4,-9,-5(B)-4,9,5(C)4,-9,-5(D)-4,9,-531.以下程序运行结果是。main(){inta[2][3]={1,3,5,4,7,6},i,j,b=a[0][0];for(i=0;i<2;i++)for(j=0;j<3;j++)if(bb=a[i][j];printf(“%d\n”,b);}(A)5(B)7(C)4(D)132.以下程序运行结果是。main(){chars[50]=”Iamastudent”,c;inti,num=0,word=0;for(i=0;c=s[i];i++)if(c==’’)word=0;elseif(word==0){word=1;num++;}printf(“%d\n”,num);}(A)2(B)3(C)4(D)533.以下程序运行结果是。#includemain(){chars[50]=”1234567”,*p=s;inti;i=*(p+5)-*(p+2);printf(“%d\n”,i*strlen(s));}(A)21(B)24(C)14(D)2834.以下程序运行结果是。main(){inta[]={1,2,3,4,5,6,7,8,9},i,j,k;for(i=0,j=8;i{k=a[i];a[i]=a[j];a[j]=k;}printf(“%d\n”,a[1]+a[5]);}(A)11(B)12(C)13(D)1435.以下程序运行结果是。main(){intx[]={1,2,3},s,*p=x,i;for(i=0,s=1;i<3;i++,p++)s*=*p;printf(“%d\n”,s);}(A)2(B)4(C)6(D)836.设有语句:inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;以下对数组a中的数组元素的不正确引用是()。Aa[p-a]B*(&a[i])Cp[i]D*(&(a+i))37.下列程序的输出结果是()#include#defineMIN(x,y)(x)<(y)?(x):(y)main(){inti,j,k;i=10;j=15;k=10*MIN(i,j);printf(“%d\n”,k);}A15B100C10D15038.以下描述中不正确的是()。A数组是一批类型相同的若干个元素的集合B数组的各个元素的类型可以不同C数组在内存中占用一块连续的存储空间D数组是一种构造类型39.可用作C语言用户标识的一组标识符()。AviodBa3_b3CForD2adefine_123-abcDOWORDIFCasesizeof40.已知i,j,k为int型变量,若从键盘输入1,2,3回车,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是()。Ascanf(“%2d%2d%2d”,&i,&j,&k);Bscanf(“%d%d%d”,&i,&j,&k);Cscanf(“%d,%d,%d”,&i,&j,&k);Dscanf(“i=%d,j=%d,k=%d”,&i,&j,&k);41.与y=(x>0?1:x<0?-1:0);的功能相同的if语句是()。Aif(x>0)y=1;Bif(x)elseif(x<0)y=-1;if(x>0)y=1;elsey=0;elseif(x<0)y=-1;elsey=0;Cy=-1;Dy=0;if(x)if(x>=0)if(x>0)y=1;if(x>0)y=1;elseif(x==0)y=0;elsey=-1;elsey=-1;42.下列程序输出的结果是()。main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf(“%d\n”,a);A31B13C10D2043.下列程序中,while循环次数是()。main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}A1B10C6D死循环,不能确定次数44.以下说法中正确的是()。AC语言程序总是从第一个函数开始执行B在C语言程序中,要调用的函数必须在main()函数中定义CC语言程序总是从main()函数开始执行DC语言程序中的main()函数必须放在程序的开始部分45.C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是()。A地址传递B值传递C由用户指定传递方式D由实参传给形参,并由形参传回来给实参46.设有:int[10],i=5;,以下对数组元素引用不正确的是()。Aa[9]BA[0]Ca[i]Da[i+5]47.若有定义:inti,j,*p=&i,则与i=j等价的语句是()。Ai=*p;B*p=*&j;Ci=&j;Di=**p;48.设a,b和c都是整型变量,且a=3,b=4,c=5;则以下表达式中,值为0的表达式是()。Aa&&bBa<=bCa||b+c&&b-cD!((ac||1)49、下面标识符中,不合法的用户标识符为()A)PadB)a_10C)_12abD)int50、调用scanf(“%d,%d”,&a,&b);时,正确的键盘输入是()A)10,20B)a=10,b=20C)10:20D)102051、能表示条件0≤x≤100的表达式是()A)0<=x<=100B.x>=0,x<=100C)0≤x≤100D)x>=0&&x<=10052、设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为()A)0B)1C)2D)353、下面不正确的字符串常量是()A)'abc'B)"12'12"C)"0"D)""54、对字符串“Cat”进行完整赋值的操作是()A)chars[3]={'C','a','t'};B)chars[]="Cat";C)chars[3]={"Cat"};D)chars[3];s="Cat";55、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()A)–3B)9C)–12D)656、设x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是printf(“%d,%d\n”,x--,--y);()A)10,3B)9,3C)9,2D)10,257、在TurboC中,设inta[10];假设数组a开始于内存2000单元,则a[2]的存储始于()A)2002B)2004C)2006D)200858、在C语言中,引用数组元素时,其数组下标的数据类型允许是()A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式59、若有ints[4]={1,2,3,4};,则s[s[0]+2*s[2]-s[3]]的值是()A)1B)2C)3D)460、用数组名作为函数的实参时,传递给形参的是()A)数组的首地址B)数组的第1个元素C)数组中的全部元素D)数组的元素个数61、以下程序的输出结果是()main(){charch[3][5]={"AAAA","BBB","CC"};printf(“%s”,ch[1]);}A)"AAAA"B)"BBB"C)"BBBCC"D)"CC"62、有以下程序段intk=0;while(k=1)k++;while循环执行的次数是()A)无限次B)有语法错,不能执行C)一次也不执行D)执行1次63、设有以下说明语句structstu{inta;floatb;}stutype;则下面的叙述不正确的是()A)struct是结构体类型的关键字B)structstu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名 二、填空题1、C语言程序的三种基本结构是、、。2、一个C程序有且仅有一个函数。3、C语言描述“x和y都大于或等于z”的表达式是。4、C语言可以用来实现循环的结构化语句是、、。5、数组名表示数组在内存的。6、inta=3,*p=&a;*p+2的值是。7、变量的作用域是指变量的有效范围,在作用域内可以引用该变量。按作用域来说,变量可以分为__________变量和______变量。8、如果程序中已有定义:intk;通过指针变量,将数值10赋值给k的句是___________。9、设a,b,c,d,m,n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则逻辑表达式(m=a10、当函数的返回值的类型与函数定义的类型不一致时,系统11、C语言中,变量是指12、指针变量是把内存中另一个数据的_______作为其值的变量。13、C语言源程序文件的后缀是,经过编译后,生成文件的后缀是,经过连接后,生成文件的后缀是。14、若x为double型变量,请写出运算x=3.2,++x后表达式的值和变量的值。15、若有定义:intx,a;则语句x=(a=3,a+1);运行后,x=,a=。16、有下列程序段:s=1.0;for(k=1;k<=10;k++)s=s+1.0/(k*(k+1));printf(“%f\n”,s);试填空,使下列的程序段的功能完全与之等同。s=0.0;__________;d=0.0;do{s=s+d;_____________;d=1.0/(k*(k+1));}while(__________);printf(“%f\n”,s);17、如果不指定精度,格式字符e,E和f默认输出小数点后____位小数。18、下列程序的输出结果是()。#includemain(){charb[30];strcpy(&b[0],”AB”);strcpy(&b[1],”CDE”);strcpy(&b[2],”FGH”);printf(“%s\n”,b);}n19、下列程序的功能是计算s=∑k!请填空。k=0longf(intn){inti;longs;s=1;for(i=1;_______;i++)s*=i;return_______;}main(){longs;intk,n;scanf(“%d”,&n);s=___________;for(k=0;k<=n;k++)s+=_______;printf(“%ld\n”,s);}20、下列程序的输出结果是___________。#defineN20#defines(x)x*x#definef(x)(x*x)main(){inti1,i2;i1=800/s(N);i2=800/f(N);printf(“%d%d\n”,i1,i2);}21、下列程序由两个文件组成,其运行结果是__________。/*文件1*//*文件2*/intx;staticintx=5;sub()main(){{x=8;sub()}printf(“x=%d\n”,x);}22、补充以下缺省的程序,实现求两个整型数的和:intsum(intx,inty){intz;z=x+y;return;}main(){inta,b,s;printf(“pleaseenteraandb:”);scanf(“%d%d”,&a,&b);s=printf(“%d+%d=%d\n”,a,b,s);} 三、阅读题(每小题5分,共20分)1.写出下列程序的运行结果()。main(){inta=100;if(a<=50)printf(“%d\n”,a<=50);elseif(a>50)printf(“%d\n”,a>50);}2.写出下列程序的输出结果()。main(){intn=‘b’;switch(n){default:printf(“error\n”);break;case‘a’:case‘b’printf(“good\n”);break;case‘c’:printf(“pass\n”);break;case‘d’:printf(“warn\n”);break;}}3.写出下列程序的运行结果()。#includemain(){inti,s=0;for(i=1;i<3;i++)s+=i;printf(“%d\n”,s);}4.写出下列程序的输出结果()。main(){inti=10,j=0;do{j=j+1;i--;}while(i>2);printf(“%d\n”,j);5.有下列程序段,请写出运行结果。func(intx){inty=13;x=x+y;returnx;}main(){intx=3;func(x);printf("%d",x+x);}输出:6.有下面程序段,请写出运行结果main(){intsum,j;for(j=1;j<=100;j++){sum=0;sum=sum+j;}printf(“sumis%d”,sum);}输出:7.有下面程序段,请写出运行结果main(){floata=3.4;intb;b=a*3;printf(“%d”,b);}输出:8.
c--;
else
c+=1;
printf(“%d\n”,c);
(A)0(B)1(C)2(D)3
21.inta[4]={2,3,4},I;
i=a[0]*a[1]+a[2]*a[3];
i的值为。
(A)2(B)4(C)6(D)10
22.以下正确的函数定义形式是。
(A)doublefun(intx,inty);
(B)doublefun(intx;inty)
(C)doublefun(intx,inty)
(D)doublefun(intx,y)
23.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是。
(A)float型(B)int型(C)long型(D)double型
24.若有定义inta[4]={1,2,3};
请问a[a[a[0]]]的值是。
(A)1(B)2(C)3(D)4
25.以下正确的描述是____________
(A)函数的定义可以嵌套,函数的调用不可以嵌套
(B)函数的定义不可以嵌套,函数的调用可以嵌套
(C)函数的定义和函数的调用均不可以嵌套
(D)函数的定义和函数的调用均可以嵌套
26.以下不正确的说法是____________
(A)在函数内的复合语句中定义的变量在本函数范围内有效
(B)在不同函数中可以使用相同名字的变量
(C)形参是局部变量
(D)函数调用结束后,静态局部变量的值仍然保留。
27.已有定义:
intx=3,y=4,z=5;
则表达式!
(x+y)+z-1&&y+z/2的值是。
(A)6(B)0(C)2(D)1
28.main()
{intn[4]={1,2,3,4},k;
for(k=0;k<4;k++)
{if(k/2)break;
n[k]++;
printf(“%d\n”,n[++k]);
执行后输出的结果是。
(A)2(B)3(C)4(D)5
29.判断字符串是否相等,应当使用。
(A)if(a==b)(B)if(a=b)(C)if(strcpy(a,b))(D)if(!
strcmp(a,b))
30.以下程序运行结果是。
voidsub(intx,inty,int*z)
{*z=y-x;}
{inta,b,c;
sub(11,7,&a);sub(5,a,&b);sub(a,b,&c);
printf(“%d,%d,%d\n”,a,b,c);
(A)-4,-9,-5(B)-4,9,5(C)4,-9,-5(D)-4,9,-5
31.以下程序运行结果是。
{inta[2][3]={1,3,5,4,7,6},i,j,b=a[0][0];
for(i=0;i<2;i++)
for(j=0;j<3;j++)
if(bb=a[i][j];printf(“%d\n”,b);}(A)5(B)7(C)4(D)132.以下程序运行结果是。main(){chars[50]=”Iamastudent”,c;inti,num=0,word=0;for(i=0;c=s[i];i++)if(c==’’)word=0;elseif(word==0){word=1;num++;}printf(“%d\n”,num);}(A)2(B)3(C)4(D)533.以下程序运行结果是。#includemain(){chars[50]=”1234567”,*p=s;inti;i=*(p+5)-*(p+2);printf(“%d\n”,i*strlen(s));}(A)21(B)24(C)14(D)2834.以下程序运行结果是。main(){inta[]={1,2,3,4,5,6,7,8,9},i,j,k;for(i=0,j=8;i{k=a[i];a[i]=a[j];a[j]=k;}printf(“%d\n”,a[1]+a[5]);}(A)11(B)12(C)13(D)1435.以下程序运行结果是。main(){intx[]={1,2,3},s,*p=x,i;for(i=0,s=1;i<3;i++,p++)s*=*p;printf(“%d\n”,s);}(A)2(B)4(C)6(D)836.设有语句:inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;以下对数组a中的数组元素的不正确引用是()。Aa[p-a]B*(&a[i])Cp[i]D*(&(a+i))37.下列程序的输出结果是()#include#defineMIN(x,y)(x)<(y)?(x):(y)main(){inti,j,k;i=10;j=15;k=10*MIN(i,j);printf(“%d\n”,k);}A15B100C10D15038.以下描述中不正确的是()。A数组是一批类型相同的若干个元素的集合B数组的各个元素的类型可以不同C数组在内存中占用一块连续的存储空间D数组是一种构造类型39.可用作C语言用户标识的一组标识符()。AviodBa3_b3CForD2adefine_123-abcDOWORDIFCasesizeof40.已知i,j,k为int型变量,若从键盘输入1,2,3回车,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是()。Ascanf(“%2d%2d%2d”,&i,&j,&k);Bscanf(“%d%d%d”,&i,&j,&k);Cscanf(“%d,%d,%d”,&i,&j,&k);Dscanf(“i=%d,j=%d,k=%d”,&i,&j,&k);41.与y=(x>0?1:x<0?-1:0);的功能相同的if语句是()。Aif(x>0)y=1;Bif(x)elseif(x<0)y=-1;if(x>0)y=1;elsey=0;elseif(x<0)y=-1;elsey=0;Cy=-1;Dy=0;if(x)if(x>=0)if(x>0)y=1;if(x>0)y=1;elseif(x==0)y=0;elsey=-1;elsey=-1;42.下列程序输出的结果是()。main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf(“%d\n”,a);A31B13C10D2043.下列程序中,while循环次数是()。main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}A1B10C6D死循环,不能确定次数44.以下说法中正确的是()。AC语言程序总是从第一个函数开始执行B在C语言程序中,要调用的函数必须在main()函数中定义CC语言程序总是从main()函数开始执行DC语言程序中的main()函数必须放在程序的开始部分45.C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是()。A地址传递B值传递C由用户指定传递方式D由实参传给形参,并由形参传回来给实参46.设有:int[10],i=5;,以下对数组元素引用不正确的是()。Aa[9]BA[0]Ca[i]Da[i+5]47.若有定义:inti,j,*p=&i,则与i=j等价的语句是()。Ai=*p;B*p=*&j;Ci=&j;Di=**p;48.设a,b和c都是整型变量,且a=3,b=4,c=5;则以下表达式中,值为0的表达式是()。Aa&&bBa<=bCa||b+c&&b-cD!((ac||1)49、下面标识符中,不合法的用户标识符为()A)PadB)a_10C)_12abD)int50、调用scanf(“%d,%d”,&a,&b);时,正确的键盘输入是()A)10,20B)a=10,b=20C)10:20D)102051、能表示条件0≤x≤100的表达式是()A)0<=x<=100B.x>=0,x<=100C)0≤x≤100D)x>=0&&x<=10052、设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为()A)0B)1C)2D)353、下面不正确的字符串常量是()A)'abc'B)"12'12"C)"0"D)""54、对字符串“Cat”进行完整赋值的操作是()A)chars[3]={'C','a','t'};B)chars[]="Cat";C)chars[3]={"Cat"};D)chars[3];s="Cat";55、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()A)–3B)9C)–12D)656、设x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是printf(“%d,%d\n”,x--,--y);()A)10,3B)9,3C)9,2D)10,257、在TurboC中,设inta[10];假设数组a开始于内存2000单元,则a[2]的存储始于()A)2002B)2004C)2006D)200858、在C语言中,引用数组元素时,其数组下标的数据类型允许是()A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式59、若有ints[4]={1,2,3,4};,则s[s[0]+2*s[2]-s[3]]的值是()A)1B)2C)3D)460、用数组名作为函数的实参时,传递给形参的是()A)数组的首地址B)数组的第1个元素C)数组中的全部元素D)数组的元素个数61、以下程序的输出结果是()main(){charch[3][5]={"AAAA","BBB","CC"};printf(“%s”,ch[1]);}A)"AAAA"B)"BBB"C)"BBBCC"D)"CC"62、有以下程序段intk=0;while(k=1)k++;while循环执行的次数是()A)无限次B)有语法错,不能执行C)一次也不执行D)执行1次63、设有以下说明语句structstu{inta;floatb;}stutype;则下面的叙述不正确的是()A)struct是结构体类型的关键字B)structstu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名 二、填空题1、C语言程序的三种基本结构是、、。2、一个C程序有且仅有一个函数。3、C语言描述“x和y都大于或等于z”的表达式是。4、C语言可以用来实现循环的结构化语句是、、。5、数组名表示数组在内存的。6、inta=3,*p=&a;*p+2的值是。7、变量的作用域是指变量的有效范围,在作用域内可以引用该变量。按作用域来说,变量可以分为__________变量和______变量。8、如果程序中已有定义:intk;通过指针变量,将数值10赋值给k的句是___________。9、设a,b,c,d,m,n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则逻辑表达式(m=a10、当函数的返回值的类型与函数定义的类型不一致时,系统11、C语言中,变量是指12、指针变量是把内存中另一个数据的_______作为其值的变量。13、C语言源程序文件的后缀是,经过编译后,生成文件的后缀是,经过连接后,生成文件的后缀是。14、若x为double型变量,请写出运算x=3.2,++x后表达式的值和变量的值。15、若有定义:intx,a;则语句x=(a=3,a+1);运行后,x=,a=。16、有下列程序段:s=1.0;for(k=1;k<=10;k++)s=s+1.0/(k*(k+1));printf(“%f\n”,s);试填空,使下列的程序段的功能完全与之等同。s=0.0;__________;d=0.0;do{s=s+d;_____________;d=1.0/(k*(k+1));}while(__________);printf(“%f\n”,s);17、如果不指定精度,格式字符e,E和f默认输出小数点后____位小数。18、下列程序的输出结果是()。#includemain(){charb[30];strcpy(&b[0],”AB”);strcpy(&b[1],”CDE”);strcpy(&b[2],”FGH”);printf(“%s\n”,b);}n19、下列程序的功能是计算s=∑k!请填空。k=0longf(intn){inti;longs;s=1;for(i=1;_______;i++)s*=i;return_______;}main(){longs;intk,n;scanf(“%d”,&n);s=___________;for(k=0;k<=n;k++)s+=_______;printf(“%ld\n”,s);}20、下列程序的输出结果是___________。#defineN20#defines(x)x*x#definef(x)(x*x)main(){inti1,i2;i1=800/s(N);i2=800/f(N);printf(“%d%d\n”,i1,i2);}21、下列程序由两个文件组成,其运行结果是__________。/*文件1*//*文件2*/intx;staticintx=5;sub()main(){{x=8;sub()}printf(“x=%d\n”,x);}22、补充以下缺省的程序,实现求两个整型数的和:intsum(intx,inty){intz;z=x+y;return;}main(){inta,b,s;printf(“pleaseenteraandb:”);scanf(“%d%d”,&a,&b);s=printf(“%d+%d=%d\n”,a,b,s);} 三、阅读题(每小题5分,共20分)1.写出下列程序的运行结果()。main(){inta=100;if(a<=50)printf(“%d\n”,a<=50);elseif(a>50)printf(“%d\n”,a>50);}2.写出下列程序的输出结果()。main(){intn=‘b’;switch(n){default:printf(“error\n”);break;case‘a’:case‘b’printf(“good\n”);break;case‘c’:printf(“pass\n”);break;case‘d’:printf(“warn\n”);break;}}3.写出下列程序的运行结果()。#includemain(){inti,s=0;for(i=1;i<3;i++)s+=i;printf(“%d\n”,s);}4.写出下列程序的输出结果()。main(){inti=10,j=0;do{j=j+1;i--;}while(i>2);printf(“%d\n”,j);5.有下列程序段,请写出运行结果。func(intx){inty=13;x=x+y;returnx;}main(){intx=3;func(x);printf("%d",x+x);}输出:6.有下面程序段,请写出运行结果main(){intsum,j;for(j=1;j<=100;j++){sum=0;sum=sum+j;}printf(“sumis%d”,sum);}输出:7.有下面程序段,请写出运行结果main(){floata=3.4;intb;b=a*3;printf(“%d”,b);}输出:8.
b=a[i][j];
printf(“%d\n”,b);
(A)5(B)7(C)4(D)1
32.以下程序运行结果是。
{chars[50]=”Iamastudent”,c;
inti,num=0,word=0;
for(i=0;c=s[i];i++)
if(c==’’)word=0;
elseif(word==0)
{word=1;num++;}
printf(“%d\n”,num);
33.以下程序运行结果是。
#include
{chars[50]=”1234567”,*p=s;
inti;
i=*(p+5)-*(p+2);
printf(“%d\n”,i*strlen(s));
(A)21(B)24(C)14(D)28
34.以下程序运行结果是。
{inta[]={1,2,3,4,5,6,7,8,9},i,j,k;
for(i=0,j=8;i{k=a[i];a[i]=a[j];a[j]=k;}printf(“%d\n”,a[1]+a[5]);}(A)11(B)12(C)13(D)1435.以下程序运行结果是。main(){intx[]={1,2,3},s,*p=x,i;for(i=0,s=1;i<3;i++,p++)s*=*p;printf(“%d\n”,s);}(A)2(B)4(C)6(D)836.设有语句:inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;以下对数组a中的数组元素的不正确引用是()。Aa[p-a]B*(&a[i])Cp[i]D*(&(a+i))37.下列程序的输出结果是()#include#defineMIN(x,y)(x)<(y)?(x):(y)main(){inti,j,k;i=10;j=15;k=10*MIN(i,j);printf(“%d\n”,k);}A15B100C10D15038.以下描述中不正确的是()。A数组是一批类型相同的若干个元素的集合B数组的各个元素的类型可以不同C数组在内存中占用一块连续的存储空间D数组是一种构造类型39.可用作C语言用户标识的一组标识符()。AviodBa3_b3CForD2adefine_123-abcDOWORDIFCasesizeof40.已知i,j,k为int型变量,若从键盘输入1,2,3回车,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是()。Ascanf(“%2d%2d%2d”,&i,&j,&k);Bscanf(“%d%d%d”,&i,&j,&k);Cscanf(“%d,%d,%d”,&i,&j,&k);Dscanf(“i=%d,j=%d,k=%d”,&i,&j,&k);41.与y=(x>0?1:x<0?-1:0);的功能相同的if语句是()。Aif(x>0)y=1;Bif(x)elseif(x<0)y=-1;if(x>0)y=1;elsey=0;elseif(x<0)y=-1;elsey=0;Cy=-1;Dy=0;if(x)if(x>=0)if(x>0)y=1;if(x>0)y=1;elseif(x==0)y=0;elsey=-1;elsey=-1;42.下列程序输出的结果是()。main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf(“%d\n”,a);A31B13C10D2043.下列程序中,while循环次数是()。main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}A1B10C6D死循环,不能确定次数44.以下说法中正确的是()。AC语言程序总是从第一个函数开始执行B在C语言程序中,要调用的函数必须在main()函数中定义CC语言程序总是从main()函数开始执行DC语言程序中的main()函数必须放在程序的开始部分45.C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是()。A地址传递B值传递C由用户指定传递方式D由实参传给形参,并由形参传回来给实参46.设有:int[10],i=5;,以下对数组元素引用不正确的是()。Aa[9]BA[0]Ca[i]Da[i+5]47.若有定义:inti,j,*p=&i,则与i=j等价的语句是()。Ai=*p;B*p=*&j;Ci=&j;Di=**p;48.设a,b和c都是整型变量,且a=3,b=4,c=5;则以下表达式中,值为0的表达式是()。Aa&&bBa<=bCa||b+c&&b-cD!((ac||1)49、下面标识符中,不合法的用户标识符为()A)PadB)a_10C)_12abD)int50、调用scanf(“%d,%d”,&a,&b);时,正确的键盘输入是()A)10,20B)a=10,b=20C)10:20D)102051、能表示条件0≤x≤100的表达式是()A)0<=x<=100B.x>=0,x<=100C)0≤x≤100D)x>=0&&x<=10052、设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为()A)0B)1C)2D)353、下面不正确的字符串常量是()A)'abc'B)"12'12"C)"0"D)""54、对字符串“Cat”进行完整赋值的操作是()A)chars[3]={'C','a','t'};B)chars[]="Cat";C)chars[3]={"Cat"};D)chars[3];s="Cat";55、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()A)–3B)9C)–12D)656、设x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是printf(“%d,%d\n”,x--,--y);()A)10,3B)9,3C)9,2D)10,257、在TurboC中,设inta[10];假设数组a开始于内存2000单元,则a[2]的存储始于()A)2002B)2004C)2006D)200858、在C语言中,引用数组元素时,其数组下标的数据类型允许是()A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式59、若有ints[4]={1,2,3,4};,则s[s[0]+2*s[2]-s[3]]的值是()A)1B)2C)3D)460、用数组名作为函数的实参时,传递给形参的是()A)数组的首地址B)数组的第1个元素C)数组中的全部元素D)数组的元素个数61、以下程序的输出结果是()main(){charch[3][5]={"AAAA","BBB","CC"};printf(“%s”,ch[1]);}A)"AAAA"B)"BBB"C)"BBBCC"D)"CC"62、有以下程序段intk=0;while(k=1)k++;while循环执行的次数是()A)无限次B)有语法错,不能执行C)一次也不执行D)执行1次63、设有以下说明语句structstu{inta;floatb;}stutype;则下面的叙述不正确的是()A)struct是结构体类型的关键字B)structstu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名 二、填空题1、C语言程序的三种基本结构是、、。2、一个C程序有且仅有一个函数。3、C语言描述“x和y都大于或等于z”的表达式是。4、C语言可以用来实现循环的结构化语句是、、。5、数组名表示数组在内存的。6、inta=3,*p=&a;*p+2的值是。7、变量的作用域是指变量的有效范围,在作用域内可以引用该变量。按作用域来说,变量可以分为__________变量和______变量。8、如果程序中已有定义:intk;通过指针变量,将数值10赋值给k的句是___________。9、设a,b,c,d,m,n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则逻辑表达式(m=a10、当函数的返回值的类型与函数定义的类型不一致时,系统11、C语言中,变量是指12、指针变量是把内存中另一个数据的_______作为其值的变量。13、C语言源程序文件的后缀是,经过编译后,生成文件的后缀是,经过连接后,生成文件的后缀是。14、若x为double型变量,请写出运算x=3.2,++x后表达式的值和变量的值。15、若有定义:intx,a;则语句x=(a=3,a+1);运行后,x=,a=。16、有下列程序段:s=1.0;for(k=1;k<=10;k++)s=s+1.0/(k*(k+1));printf(“%f\n”,s);试填空,使下列的程序段的功能完全与之等同。s=0.0;__________;d=0.0;do{s=s+d;_____________;d=1.0/(k*(k+1));}while(__________);printf(“%f\n”,s);17、如果不指定精度,格式字符e,E和f默认输出小数点后____位小数。18、下列程序的输出结果是()。#includemain(){charb[30];strcpy(&b[0],”AB”);strcpy(&b[1],”CDE”);strcpy(&b[2],”FGH”);printf(“%s\n”,b);}n19、下列程序的功能是计算s=∑k!请填空。k=0longf(intn){inti;longs;s=1;for(i=1;_______;i++)s*=i;return_______;}main(){longs;intk,n;scanf(“%d”,&n);s=___________;for(k=0;k<=n;k++)s+=_______;printf(“%ld\n”,s);}20、下列程序的输出结果是___________。#defineN20#defines(x)x*x#definef(x)(x*x)main(){inti1,i2;i1=800/s(N);i2=800/f(N);printf(“%d%d\n”,i1,i2);}21、下列程序由两个文件组成,其运行结果是__________。/*文件1*//*文件2*/intx;staticintx=5;sub()main(){{x=8;sub()}printf(“x=%d\n”,x);}22、补充以下缺省的程序,实现求两个整型数的和:intsum(intx,inty){intz;z=x+y;return;}main(){inta,b,s;printf(“pleaseenteraandb:”);scanf(“%d%d”,&a,&b);s=printf(“%d+%d=%d\n”,a,b,s);} 三、阅读题(每小题5分,共20分)1.写出下列程序的运行结果()。main(){inta=100;if(a<=50)printf(“%d\n”,a<=50);elseif(a>50)printf(“%d\n”,a>50);}2.写出下列程序的输出结果()。main(){intn=‘b’;switch(n){default:printf(“error\n”);break;case‘a’:case‘b’printf(“good\n”);break;case‘c’:printf(“pass\n”);break;case‘d’:printf(“warn\n”);break;}}3.写出下列程序的运行结果()。#includemain(){inti,s=0;for(i=1;i<3;i++)s+=i;printf(“%d\n”,s);}4.写出下列程序的输出结果()。main(){inti=10,j=0;do{j=j+1;i--;}while(i>2);printf(“%d\n”,j);5.有下列程序段,请写出运行结果。func(intx){inty=13;x=x+y;returnx;}main(){intx=3;func(x);printf("%d",x+x);}输出:6.有下面程序段,请写出运行结果main(){intsum,j;for(j=1;j<=100;j++){sum=0;sum=sum+j;}printf(“sumis%d”,sum);}输出:7.有下面程序段,请写出运行结果main(){floata=3.4;intb;b=a*3;printf(“%d”,b);}输出:8.
{k=a[i];a[i]=a[j];a[j]=k;}
printf(“%d\n”,a[1]+a[5]);
(A)11(B)12(C)13(D)14
35.以下程序运行结果是。
{intx[]={1,2,3},s,*p=x,i;
for(i=0,s=1;i<3;i++,p++)
s*=*p;
printf(“%d\n”,s);
(A)2(B)4(C)6(D)8
36.设有语句:
inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;以下对数组a
中的数组元素的不正确引用是()。
Aa[p-a]B*(&a[i])Cp[i]D*(&(a+i))
37.下列程序的输出结果是()
#defineMIN(x,y)(x)<(y)?
(x):
(y)
{inti,j,k;
i=10;j=15;
k=10*MIN(i,j);printf(“%d\n”,k);}
A15B100C10D150
38.以下描述中不正确的是()。
A数组是一批类型相同的若干个元素的集合
B数组的各个元素的类型可以不同
C数组在内存中占用一块连续的存储空间
D数组是一种构造类型
39.可用作C语言用户标识的一组标识符()。
AviodBa3_b3CForD2a
define_123-abcDO
WORDIFCasesizeof
40.已知i,j,k为int型变量,若从键盘输入1,2,3回车,使i的值为
1,j的值为2,k的值为3,以下选项中正确的输入语句是()。
Ascanf(“%2d%2d%2d”,&i,&j,&k);
Bscanf(“%d%d%d”,&i,&j,&k);
Cscanf(“%d,%d,%d”,&i,&j,&k);
Dscanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
41.与y=(x>0?
1:
x<0?
-1:
0);的功能相同的if语句是()。
Aif(x>0)y=1;Bif(x)
elseif(x<0)y=-1;if(x>0)y=1;
elsey=0;elseif(x<0)y=-1;
elsey=0;
Cy=-1;Dy=0;
if(x)if(x>=0)
if(x>0)y=1;if(x>0)y=1;
elseif(x==0)y=0;elsey=-1;elsey=-1;
42.下列程序输出的结果是()。
{inta=0,i;for(i=1;i<5;i++){
switch(i)
{case0:
case3:
a+=2;
case1:
case2:
a+=3;
default:
a+=5;}}
printf(“%d\n”,a);
A31B13C10D20
43.下列程序中,while循环次数是()。
{inti=0;
while(i<10){
if(i<1)continue;
if(i==5)break;
i++;}}
A1B10C6D死循环,不能确定次数
44.以下说法中正确的是()。
AC语言程序总是从第一个函数开始执行
B在C语言程序中,要调用的函数必须在main()函数中定义
CC语言程序总是从main()函数开始执行
DC语言程序中的main()函数必须放在程序的开始部分
45.C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是()。
A地址传递B值传递C由用户指定传递方式
D由实参传给形参,并由形参传回来给实参
46.设有:
int[10],i=5;,以下对数组元素引用不正确的是()。
Aa[9]BA[0]Ca[i]Da[i+5]
47.若有定义:
inti,j,*p=&i,则与i=j等价的语句是()。
Ai=*p;B*p=*&j;Ci=&j;Di=**p;
48.设a,b和c都是整型变量,且a=3,b=4,c=5;则以下表达式中,值为0
的表达式是()。
Aa&&bBa<=bCa||b+c&&b-cD!
((a
c||1)
49、下面标识符中,不合法的用户标识符为()
A)PadB)a_10C)_12abD)int
50、调用scanf(“%d,%d”,&a,&b);时,正确的键盘输入是()
A)10,20B)a=10,b=20
C)10:
20D)1020
51、能表示条件0≤x≤100的表达式是()
A)0<=x<=100B.x>=0,x<=100
C)0≤x≤100D)x>=0&&x<=100
52、设有:
inta=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>b)&&(n=c>d)后n的值为()
A)0B)1C)2D)3
53、下面不正确的字符串常量是()
A)'abc'B)"12'12"C)"0"D)""
54、对字符串“Cat”进行完整赋值的操作是()
A)chars[3]={'C','a','t'};B)chars[]="Cat";
C)chars[3]={"Cat"};D)chars[3];s="Cat";
55、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()
A)–3B)9C)–12D)6
56、设x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是printf(“%d,%d\n”,x--,--y);()
A)10,3B)9,3C)9,2D)10,2
57、在TurboC中,设inta[10];假设数组a开始于内存2000单元,则a[2]的存储始于()
A)2002B)2004C)2006D)2008
58、在C语言中,引用数组元素时,其数组下标的数据类型允许是()
A)整型常量B)整型表达式
C)整型常量或整型表达式D)任何类型的表达式
59、若有ints[4]={1,2,3,4};,则s[s[0]+2*s[2]-s[3]]的值是()
A)1B)2C)3D)4
60、用数组名作为函数的实参时,传递给形参的是()
A)数组的首地址B)数组的第1个元素
C)数组中的全部元素D)数组的元素个数
61、以下程序的输出结果是()
{charch[3][5]={"AAAA","BBB","CC"};
printf(“%s”,ch[1]);
A)"AAAA"B)"BBB"C)"BBBCC"D)"CC"
62、有以下程序段
intk=0;
while(k=1)k++;
while循环执行的次数是()
A)无限次B)有语法错,不能执行
C)一次也不执行D)执行1次
63、设有以下说明语句
structstu
{inta;
floatb;
}stutype;
则下面的叙述不正确的是()
A)struct是结构体类型的关键字B)structstu是用户定义的结构体类型
C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名
二、填空题
1、C语言程序的三种基本结构是、、。
2、一个C程序有且仅有一个函数。
3、C语言描述“x和y都大于或等于z”的表达式是。
4、C语言可以用来实现循环的结构化语句是、、。
5、数组名表示数组在内存的。
6、inta=3,*p=&a;*p+2的值是。
7、变量的作用域是指变量的有效范围,在作用域内可以引用该变量。
按作用域来说,变量可以分为__________变量和______变量。
8、如果程序中已有定义:
intk;通过指针变量,将数值10赋值给k的
句是___________。
9、设a,b,c,d,m,n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则
逻辑表达式(m=a
10、当函数的返回值的类型与函数定义的类型不一致时,系统
11、C语言中,变量是指
12、指针变量是把内存中另一个数据的_______作为其值的变量。
13、C语言源程序文件的后缀是,经过编译后,生成文件的后缀是,经过连接后,生成文件的后缀是。
14、若x为double型变量,请写出运算x=3.2,++x后表达式的值和
变量的值。
15、若有定义:
intx,a;则语句x=(a=3,a+1);运行后,x=,a=。
16、有下列程序段:
s=1.0;
for(k=1;k<=10;k++)
s=s+1.0/(k*(k+1));
printf(“%f\n”,s);
试填空,使下列的程序段的功能完全与之等同。
s=0.0;
__________;
d=0.0;
do{s=s+d;_____________;
d=1.0/(k*(k+1));}while(__________);
17、如果不指定精度,格式字符e,E和f默认输出小数点后____位小数。
18、下列程序的输出结果是()。
{charb[30];
strcpy(&b[0],”AB”);
strcpy(&b[1],”CDE”);
strcpy(&b[2],”FGH”);
printf(“%s\n”,b);}
n
19、下列程序的功能是计算s=∑k!
请填空。
k=0
longf(intn)
{inti;longs;
s=1;
for(i=1;_______;i++)s*=i;
return_______;}
{longs;intk,n;
scanf(“%d”,&n);
s=___________;
for(k=0;k<=n;k++)s+=_______;
printf(“%ld\n”,s);}
20、下列程序的输出结果是___________。
#defineN20
#defines(x)x*x
#definef(x)(x*x)
{inti1,i2;
i1=800/s(N);i2=800/f(N);
printf(“%d%d\n”,i1,i2);}
21、下列程序由两个文件组成,其运行结果是__________。
/*文件1*//*文件2*/
intx;staticintx=5;
sub()main()
{{
x=8;sub()
}printf(“x=%d\n”,x);
22、补充以下缺省的程序,实现求两个整型数的和:
intsum(intx,inty)
{
intz;
z=x+y;
return;
inta,b,s;
printf(“pleaseenteraandb:
”);
scanf(“%d%d”,&a,&b);
s=
printf(“%d+%d=%d\n”,a,b,s);
三、阅读题(每小题5分,共20分)
1.写出下列程序的运行结果()。
{inta=100;
if(a<=50)
printf(“%d\n”,a<=50);
elseif(a>50)
printf(“%d\n”,a>50);}
2.写出下列程序的输出结果()。
{intn=‘b’;
switch(n)
{default:
printf(“error\n”);break;
case‘a’:
case‘b’printf(“good\n”);break;
case‘c’:
printf(“pass\n”);break;
case‘d’:
printf(“warn\n”);break;}}
3.写出下列程序的运行结果()。
{inti,s=0;
for(i=1;i<3;i++)
s+=i;
printf(“%d\n”,s);}
4.写出下列程序的输出结果()。
{inti=10,j=0;
do
{j=j+1;i--;}
while(i>2);
printf(“%d\n”,j);
5.有下列程序段,请写出运行结果。
func(intx)
{inty=13;
x=x+y;
returnx;
{intx=3;
func(x);
printf("%d",x+x);
输出:
6.有下面程序段,请写出运行结果
{intsum,j;
for(j=1;j<=100;j++){sum=0;sum=sum+j;}
printf(“sumis%d”,sum);
7.有下面程序段,请写出运行结果
floata=3.4;
intb;
b=a*3;
printf(“%d”,b);
8.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1