C语言程序设计复习资料.doc
《C语言程序设计复习资料.doc》由会员分享,可在线阅读,更多相关《C语言程序设计复习资料.doc(12页珍藏版)》请在冰点文库上搜索。
C语言程序设计复习资料
一、选择题
下列各题ABCD四个选项中,只有一个选项是正确的,请将正确选项涂在答题卡的相应位置上,答在试卷上不得分。
1、不合法的整数是(B)。
A)0x35B)43.6C)0532D)-346
2、下列合法的字符常量是(D)。
A)“f”B)xC)65D)‘\Xab’
3、设有整型变量x,单精度变量y=5.5,表达式x=float(y*3+((int)y%4))执行后,x的值为(A)。
A)17B)17.500000C)17.5D)1.5
4、在C语言中,负整数在内存中以(A)形式释放。
A)补码B)BCD码C)反码D)十进制数
5、在C语言中,要求参加运算的数必须是整数的运算符是(C)。
A)/B)!
C)%D)==
6、(D)是C语言中非法的数据类型关键字。
A)floatB)singedC)integerD)Char
7、现已定义整形变量inti=1;执行循环语句while(i++<5);后i的值为(b)。
A)1B)5C)6D)以上三个答案都不正确
8、下列语句的输出结果是(D)。
printf(“%f\n”,(float)(2+4)/2);
A)有语法错误不能通过编译B)3C)3.0D)3.000000
12、定义a为整型,下列表达式a=3>6的运行后,a的值为(A)。
A)0B)1C)3D)表达式错误
13、如果a=1,b=2,c=3,d=4,则条件表达式a>b?
a:
c>d?
c:
d的值为(D)。
A)1B)2C)3D)4
14、对于条件表达式(M)?
(a++):
(a--),其中的表达式M等价于(C)。
A)M==0B)M==1C)M!
=0D)M!
=1
15、在x值处于-2到2,4到8时值为“真”,否则为“假”的表达式是(D)。
A)(2>x>-2)||(4>x>8)B)((x<=-2)||(x>=2)||((x>4)||(x>=8))
C)(x<2)&&(x>=-2)&&(x>4)&&(x<8)D)(x>-2)&&(x>4)||(x<8)&&(x<2)
16、已知字母a的ASC||的十进制代码为97,则执行下列语句后输出为(C)。
Chara=‘a’;
a--;
printf(“%d,%c\n”,a+‘2’-‘0’,a+‘3’-‘0’);
A)a,cB)a—运算不合法,故有语法错误C)98,cD)格式描述和输出项不匹配,输出无定值
18、C语言中,逻辑“真”等价于(C)。
A)大于零的数B)大于零的整数C)非零的数D)非零的整数
19、下列语句中,符合语法的语句式(D)。
A)a+b=3B)a=7C)a=c+b+3=6;D)a=8,b=a+7;
20、若x为float型变量,则以列程序段结果是(B)。
x=1234.6789;
printf(“%-2.1f”,x);
A)输出格式描述符的域宽度不够,不能输出B)输出为1234.7
C)输出为1234.6D)输出为-1234.6
21、下面函数的功能是(A)。
Intfunl(char*x)
{
char*y=x;
while(*y++);
return(y-x-1);
}
A)求字符串的长度B)比较两个字符串的大小C)将字符串x复制到字符串y
D)将字符串x连接到字符串y后面
22、指针变量a所指的字符串长度为(D)。
Char*a=”\n\”MyNameis\”ZhangLi\”\n”;
A)26B)27C)28D)23
23、若有以下说明和语句,则输出结果是(B)。
Char*sp=”\\\”\n”;
Printf(“%d”,strlen(sp));
A)6B)3C)5D)字符串中有非法自负,输出值不定
24、若有以下的说明语句,则对字符串中字符的不正确引用是(其中0<=i<6)(D).
Char*strp=“string”;
A)*strpB)*(strp+i)C)strp[i]D)strp
25、函数调用:
strcat(strcpy(str1,str2),str3)的功能是(C)。
A)将串str1复制到串str2中后再连接到串str3之后
B)将串str1连接到串str2之后再复制到串str3之后
C)将串str2复制到串str1中后再将串str3连接到串str1之后
D)将串str2连接到串str1之后再将串str1复制到串str3之后
26、若使用下述程序段将整数12和浮点数13.6分别赋给变量a和b,那么输入应该式(B)。
inta;
floatb;
scanf(“a=%d,b=%f”,&a,&b);
A)1213.6B)a=12,b=13.6C)12,13.6D)a=12b=13.6
27、对下面的程序说法正确的是(C)。
main()
{intx+3,y=0,z=0;
if(x=y+z)
printf(“****”);
else
printf(“####”);
A)有语法错误,不能通过编译B)输出为****C)输出为####D)通过编译,但是不能运行
28、下面程序的输出是(B)。
intx=10,y=3;
printf(“%d\n”,y=x%y);
A)0B)1C)3D)不确定的值
29、(D)是不正确的C语言赋值语句。
A)a=a+1;B)i++;C)a*=1,b=8;D)a=3
30、C语言程序的三种基本程序是(A)。
A)顺序结构,选择结构,循环结构B)递归结构,循环结构,转移结构
C)嵌套结构,递归结构,顺序结构D)循环结构,转移结构,顺序结构
33、以下程序段(B)。
intx=1,y=4;
printf(x”x=%d”:”y=%d”,x,y);A)输出控制格式错误B)输出:x=1C)输出:y=1D)输出:y=434、为了避免嵌套的条件语句if-else的二义性,C语言规定:else与(B)是正确的。A)缩排位置相同的ifB)其之前最近的ifC)其之后ifD)同一行上的if35、下列关于switch语句和break语句的结论中,只有(B)是正确的。A)break语句是switch语句的一部分B)在switch语句中可以根据需要使用或不使用break语句C)在switch语句中必须使用break语句D)以上三个结论有两个是正确的36、设I和x都是int类型,则对于for循环语句for(i=0,x=0;i<9;i++),下列哪句话正确(B)。A)执行8次B)执行9次C)是无限循环D)循环体一次也不执行40、char(*A)[5],则标识符A的意义时(B)。A)A是一个指向有5个字符型元素的指针变量B)A是一个有5个元素的一维数组,每个元素指向字符型的指针变量C)A是一个指向字符型的函数的指针变量D)A是一个有5个元素的一维数组,每个元素指向整型变量的指针变量112、C语言程序的三种基本结构是(A)A)顺序结构,选择结构,循环结构B)递归结构,循环结构,转移结构C)嵌套结构,递归结构,顺序结构D)循环结构,转移结构,顺序结构1.下列合法的字符常量是(D)。A.“f”B.xC.65D.‘\Xab’2.下面那个是属于合法的标识符(C)A.99B.1_sC.abD.@vb3.在C语言中,要求参加运算的数必须是整数的运算符是(C)。A./B.!C.%D.==4.现已定义整形变量inti=1;执行循环语句while(i++<5);后i的值为(B)。A.1B.5C.6D.以上三个答案都不正确5.下列语句的输出结果是(D)。printf(“%f\n”,(float)(2+4)/2);A.有语法错误不能通过编译B.3C.3.0D.3.0000006.设C语言中,int类型数据占2个字节,则long类型数据占(D)个字节。A.1B.2C.8D.47.现有表达式y=x<1?1:(x<10?2:3),如x=12,则y等于(C)A.2B.1C.3D.08.定义a为整型,下列表达式a=3>6的运行后,a的值为(A)。A.0B.1C.3D.表达式错误9.表达式a=3,a+1,a*a的值是(B)A.2B.9C.16D.410.下列语句中,符合语法的语句式(D)。A.a+b=3B.a=7C.a=c+b+3=6;D.a=8,b=a+7;在c中单精度数据类型的精度是几?(C)A.8B.6C.7D.55.在C语言中,用(B)表示逻辑值“真”。A.1B.非0的数C.“a”D.‘\101’6.表达式2.5+7%3*3(int)(2.5+4.7)%2/4的结果是(D)A.2.4B.2.75C.3D.2.57.表达式!4||3&&2的结果是(A)A.1B.0C.4D.28.现有表达式y=x<1?1:(x<10?2:3),如x=5,则y等于(A)A.2B.1C.3D.09.若变量已正确定义,语句“if(a>b)k=0;elsek=1;”和其等价的是(D)A.k=(a>b)?1:0B.k=a>b;C.k=a<=b;D.a<=b?0:1;10.设x=3,执行语句y=x++后,x、y分别等于(D)A.3,3B.1,2C.3,4D.4,311.表达式a=3,a=a+1,a*a的值是(C)A.2B.9C.16D.412.函数调用:strcat(strcpy(str1,str2),str3)的功能是(C)。A.将串str1复制到串str2中后再连接到串str3之后B.将串str1连接到串str2之后再复制到串str3之后C.将串str2复制到串str1中后再将串str3连接到串str1之后D.将串str2连接到串str1之后再将串str1复制到串str3之后13.break语句的作用是(B)A.结束本次循环B.结束所有循环C.结束一条语句D.结束整个程序14.下列程序的输出结果是(C)。fun(inta,intb,intc){c=a*b;}main(){intc=5;fun(2,3,c);printf(”%d\n”,c);}A.0B.5C.6D.无法确定二、填空。三、5.下述函数的功能是__将数组a的元素由小到大排序_____________________.voidfunc(inta[],intn){inti,j;for(i=1;i{for(j=i;j>0&&a[j]{intt=a[j];a[j]=a[j-1];a[j-1]=t;}}}8.一个C源程序中至少应包括一个main()函数______。9.在一个C源程序中,注释部分两侧的分界符分别为__/*___和__*/___。10.在C语言中,输入操作是由库函数_scanf___完成的,输出操作是由库函数_printf____完成的。11.经过下述赋植后,变量X的数据类型是_整型int______。Intx=2;Doubley;Y=(int)(float)x;12.C语言的基本数据类型分别为__整_int___型、_字符_char____型、_实float_____型。13.若a、b和c均是int类型变量,则执行下面表达式后,a值为___6_____,b值为___4____,c值为___2____。a=(b=4)+(c=2)14.若a是int型变量,则执行下面表达式后,a的值为___2___。a=25/3%315.若x和n均是int型变量,且x和n的初值均为5,则执行下面表达式后,x的值为__10___,n的值为___6____。x+=n++16.若有定义:iloata=2.5,cntb=7;f=4.7;则执行下面表达式的值为__5.5____。a+(int)(b/3*(int)(a+c)/2)%417.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为_8.000000________。18.若有定义:inte=1,f=4,g=2;floatm=10.5,n=4.0,k;则执行赋值表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后,k的值为___13.700000___________。19.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为____int整型___________。20.表达式pow(2.8,sqrt(double(x)))值的数据类型为__double双精度_____。21.若s是int型变量,且s=6,则下面表达式的值为______1_______。s%2+(s+1)%222.若a是int型变量,则下面表达式的值为____26_________。(a=4*5,a*2),a+623.若x和a均是int型变量,则执行表达式(1)后的x值为___12____,执行表达式(2)后的x值为_____4________。(1)x=(a=4,6*2)(2)x=a=4,6*2?24.若有以下定义,则执行表达式y+=y-=m*=y后,y的值为_____-16________intm=5,y=2;25.设C语言中,一个int型数据在内存中占两个字节,则int型数据的取值范围为-32768---32767数组名中存放的是一个地址常量,它代表___数组的首地址_____。2.表示“x≥y≥z”的C语言表达式是_(x>=y&&y>=z)________。3.设ch是字符型变量,判断ch为英文字母的c语言表达式是:(ch>=’A’&&ch<=’Z’)||(ch>=’a’&&ch<=’z’)。4.已知inta[10];int*px=a,*py=&a[3];那么py与px相隔___6______个字节。5.If语句中if总是和__最近_______else匹配。6.从函数的参数来分函数分为_有参函数________、__无参函数______。7.调用函数时,函数名称必须与__被调用函数____________名称完全一致。8.形参变量只有在___调用_______时,才分配内存单元。__调用结束_______时,即刻释放所分配的内存单元。6.从函数的参数来分函数分为_有参函数________、__无参函数______。7.在x值处于-2到2,4到8时值为“真”,否则为“假”的表达式是__(x>=-2&&x<=2)||(x>=4&&x<=8)__________。8.下面函数的功能是___求字符串的长度________________。Intfunl(char*x){char*y=x;while(*y++);return(y-x-1);}。9.设I和x都是int类型,则对于for循环语句for(i=0,x=0;i<9;i++)执行了___9____次。10.在C语言中,逻辑值“真”用__非0的数____________来表示。四、程序运行结果1.下列程序输出的结果是11,13,14,16,17,19,20。Main(){intn;for(n=10;n<=20;n++){if(n%3==0)Continue;Printf(“%d”,n);}}2.下列程序段的输出是______5_________。#definef(a,b,x)a*x+bprintf("%d",f(3,2,1));3.#include#defineM3#defineNM+1main(){printf(“%d\n”,N);}4.main(){intarray[5]={2,4,6,810};int*pointer=array;printf(”%d”,array[0]);printf(”%d”,*(array+1));printf(”%d”,*(pointer+2));printf(”%d”,*(pioter++));}四、程序分析(23分)2.下面程序的功能是什么?#include“stdio.h”main(){inta,b,c,temp;printf(“\n请输入三个数:”);scanf(“%d%d%d”,&a,&b,&c);printf(“a=%d,b=%d,c=%d”,a,b,c);temp=a;a=c;c=b;b=temp;printf(“\n交换之后a=%d,b=%d,c=%d”,a,b,c);}3.下面程序的功能是什么?#includeprime(inta){inte,i,yes;yes=1;e=a/2;i=2;while((i<=e)&&yes)if((a%i)==0)yes=0;elsei++;returnyes;}main(){intx;printf(“输入一个整数给:”);scanf(“%d”,&x);if(prime(x))printf(“YES\n”);elseprintf(“No\n”);}4.下列程序的输出结果是(C)。#includevoidfun();voidmain(){intx=1;if(x==1){intx=2;printf(“%d”,++x);}voidfun(){printf(“%d”,x++);}A)2,1,1B)1,2,1C)2,2,2D)2,2,15.以下程序的输出结果是(C)。main(){char*a[][5]={“how”,”do”,”you”,”do”,”!”};char**p;inti;p=a;for(i=0;i<4;i++)printf(“%s”,p[i]);}A)howdoyoudo!B)howC)howdoyoudoD)hdyd6.下述程序的输出结果为(D)。#includevoidmain(){inta[5]={2,4,6,8,10};int*p=a,**q=&p;printf(“d%,”,*(p++));printf(“%d”,**q);}A)4,4B)2,2C)4,5D)2,4五、程序填空。(27分)1.下面程序是求100—200间的全部素数。#includemain(){(1)intprime(intn);for(m=101;m<=200;m=m+2)if((2)prime(m)){printf(“%d”,m);}}intprime(intn)/*判断n是否为素数*/{intflag=1,i;for(i=2;iif(n%i==0)flag=0;return(__(3)_flag__);}3.下述函数将字符串转换成整数。字符串中允许出现前导空格符、换行符和制表符,除此之外的其他非数字字符开头作0处理。此外,若字符串中出现非数字
”x=%d”:
”y=%d”,x,y);
A)输出控制格式错误B)输出:
x=1C)输出:
y=1D)输出:
y=4
34、为了避免嵌套的条件语句if-else的二义性,C语言规定:
else与(B)是正确的。
A)缩排位置相同的ifB)其之前最近的ifC)其之后ifD)同一行上的if
35、下列关于switch语句和break语句的结论中,只有(B)是正确的。
A)break语句是switch语句的一部分
B)在switch语句中可以根据需要使用或不使用break语句
C)在switch语句中必须使用break语句
D)以上三个结论有两个是正确的
36、设I和x都是int类型,则对于for循环语句for(i=0,x=0;i<9;i++),下列哪句话正确(B)。
A)执行8次B)执行9次C)是无限循环D)循环体一次也不执行
40、char(*A)[5],则标识符A的意义时(B)。
A)A是一个指向有5个字符型元素的指针变量
B)A是一个有5个元素的一维数组,每个元素指向字符型的指针变量
C)A是一个指向字符型的函数的指针变量
D)A是一个有5个元素的一维数组,每个元素指向整型变量的指针变量
112、C语言程序的三种基本结构是(A)
1.下列合法的字符常量是(D)。
A.“f”B.xC.65D.‘\Xab’
2.下面那个是属于合法的标识符(C)
A.99B.1_sC.abD.@vb
3.在C语言中,要求参加运算的数必须是整数的运算符是(C)。
A./B.!
C.%D.==
4.现已定义整形变量inti=1;执行循环语句while(i++<5);后i的值为(B)。
A.1B.5C.6D.以上三个答案都不正确
5.下列语句的输出结果是(D)。
A.有语法错误不能通过编译B.3C.3.0D.3.000000
6.设C语言中,int类型数据占2个字节,则long类型数据占(D)个字节。
A.1B.2C.8D.4
7.现有表达式y=x<1?
1:
(x<10?
2:
3),如x=12,则y等于(C)
A.2B.1C.3D.0
8.定义a为整型,下列表达式a=3>6的运行后,a的值为(A)。
A.0B.1C.3D.表达式错误
9.表达式a=3,a+1,a*a的值是(B)
A.2B.9C.16D.4
10.下列语句中,符合语法的语句式(D)。
A.a+b=3B.a=7C.a=c+b+3=6;D.a=8,b=a+7;
在c中单精度数据类型的精度是几?
(C)
A.8B.6C.7D.5
5.在C语言中,用(B)表示逻辑值“真”。
A.1B.非0的数C.“a”D.‘\101’
6.表达式2.5+7%3*3(int)(2.5+4.7)%2/4的结果是(D)
A.2.4B.2.75C.3D.2.5
7.表达式!
4||3&&2的结果是(A)
A.1B.0C.4D.2
8.现有表达式y=x<1?
3),如x=5,则y等于(A)
9.若变量已正确定义,语句“if(a>b)k=0;elsek=1;”和其等价的是(D)
A.k=(a>b)?
0B.k=a>b;C.k=a<=b;D.a<=b?
0:
1;
10.设x=3,执行语句y=x++后,x、y分别等于(D)
A.3,3B.1,2C.3,4D.4,3
11.表达式a=3,a=a+1,a*a的值是(C)
12.函数调用:
A.将串str1复制到串str2中后再连接到串str3之后
B.将串str1连接到串str2之后再复制到串str3之后
C.将串str2复制到串str1中后再将串str3连接到串str1之后
D.将串str2连接到串str1之后再将串str1复制到串str3之后
13.break语句的作用是(B)
A.结束本次循环B.结束所有循环C.结束一条语句D.结束整个程序
14.下列程序的输出结果是(C)。
fun(inta,intb,intc)
{c=a*b;}
{intc=5;
fun(2,3,c);
printf(”%d\n”,c);
A.0B.5C.6D.无法确定
二、填空。
三、5.下述函数的功能是__将数组a的元素由小到大排序_____________________.
voidfunc(inta[],intn)
{inti,j;
for(i=1;i{for(j=i;j>0&&a[j]{intt=a[j];a[j]=a[j-1];a[j-1]=t;}}}8.一个C源程序中至少应包括一个main()函数______。9.在一个C源程序中,注释部分两侧的分界符分别为__/*___和__*/___。10.在C语言中,输入操作是由库函数_scanf___完成的,输出操作是由库函数_printf____完成的。11.经过下述赋植后,变量X的数据类型是_整型int______。Intx=2;Doubley;Y=(int)(float)x;12.C语言的基本数据类型分别为__整_int___型、_字符_char____型、_实float_____型。13.若a、b和c均是int类型变量,则执行下面表达式后,a值为___6_____,b值为___4____,c值为___2____。a=(b=4)+(c=2)14.若a是int型变量,则执行下面表达式后,a的值为___2___。a=25/3%315.若x和n均是int型变量,且x和n的初值均为5,则执行下面表达式后,x的值为__10___,n的值为___6____。x+=n++16.若有定义:iloata=2.5,cntb=7;f=4.7;则执行下面表达式的值为__5.5____。a+(int)(b/3*(int)(a+c)/2)%417.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为_8.000000________。18.若有定义:inte=1,f=4,g=2;floatm=10.5,n=4.0,k;则执行赋值表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后,k的值为___13.700000___________。19.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为____int整型___________。20.表达式pow(2.8,sqrt(double(x)))值的数据类型为__double双精度_____。21.若s是int型变量,且s=6,则下面表达式的值为______1_______。s%2+(s+1)%222.若a是int型变量,则下面表达式的值为____26_________。(a=4*5,a*2),a+623.若x和a均是int型变量,则执行表达式(1)后的x值为___12____,执行表达式(2)后的x值为_____4________。(1)x=(a=4,6*2)(2)x=a=4,6*2?24.若有以下定义,则执行表达式y+=y-=m*=y后,y的值为_____-16________intm=5,y=2;25.设C语言中,一个int型数据在内存中占两个字节,则int型数据的取值范围为-32768---32767数组名中存放的是一个地址常量,它代表___数组的首地址_____。2.表示“x≥y≥z”的C语言表达式是_(x>=y&&y>=z)________。3.设ch是字符型变量,判断ch为英文字母的c语言表达式是:(ch>=’A’&&ch<=’Z’)||(ch>=’a’&&ch<=’z’)。4.已知inta[10];int*px=a,*py=&a[3];那么py与px相隔___6______个字节。5.If语句中if总是和__最近_______else匹配。6.从函数的参数来分函数分为_有参函数________、__无参函数______。7.调用函数时,函数名称必须与__被调用函数____________名称完全一致。8.形参变量只有在___调用_______时,才分配内存单元。__调用结束_______时,即刻释放所分配的内存单元。6.从函数的参数来分函数分为_有参函数________、__无参函数______。7.在x值处于-2到2,4到8时值为“真”,否则为“假”的表达式是__(x>=-2&&x<=2)||(x>=4&&x<=8)__________。8.下面函数的功能是___求字符串的长度________________。Intfunl(char*x){char*y=x;while(*y++);return(y-x-1);}。9.设I和x都是int类型,则对于for循环语句for(i=0,x=0;i<9;i++)执行了___9____次。10.在C语言中,逻辑值“真”用__非0的数____________来表示。四、程序运行结果1.下列程序输出的结果是11,13,14,16,17,19,20。Main(){intn;for(n=10;n<=20;n++){if(n%3==0)Continue;Printf(“%d”,n);}}2.下列程序段的输出是______5_________。#definef(a,b,x)a*x+bprintf("%d",f(3,2,1));3.#include#defineM3#defineNM+1main(){printf(“%d\n”,N);}4.main(){intarray[5]={2,4,6,810};int*pointer=array;printf(”%d”,array[0]);printf(”%d”,*(array+1));printf(”%d”,*(pointer+2));printf(”%d”,*(pioter++));}四、程序分析(23分)2.下面程序的功能是什么?#include“stdio.h”main(){inta,b,c,temp;printf(“\n请输入三个数:”);scanf(“%d%d%d”,&a,&b,&c);printf(“a=%d,b=%d,c=%d”,a,b,c);temp=a;a=c;c=b;b=temp;printf(“\n交换之后a=%d,b=%d,c=%d”,a,b,c);}3.下面程序的功能是什么?#includeprime(inta){inte,i,yes;yes=1;e=a/2;i=2;while((i<=e)&&yes)if((a%i)==0)yes=0;elsei++;returnyes;}main(){intx;printf(“输入一个整数给:”);scanf(“%d”,&x);if(prime(x))printf(“YES\n”);elseprintf(“No\n”);}4.下列程序的输出结果是(C)。#includevoidfun();voidmain(){intx=1;if(x==1){intx=2;printf(“%d”,++x);}voidfun(){printf(“%d”,x++);}A)2,1,1B)1,2,1C)2,2,2D)2,2,15.以下程序的输出结果是(C)。main(){char*a[][5]={“how”,”do”,”you”,”do”,”!”};char**p;inti;p=a;for(i=0;i<4;i++)printf(“%s”,p[i]);}A)howdoyoudo!B)howC)howdoyoudoD)hdyd6.下述程序的输出结果为(D)。#includevoidmain(){inta[5]={2,4,6,8,10};int*p=a,**q=&p;printf(“d%,”,*(p++));printf(“%d”,**q);}A)4,4B)2,2C)4,5D)2,4五、程序填空。(27分)1.下面程序是求100—200间的全部素数。#includemain(){(1)intprime(intn);for(m=101;m<=200;m=m+2)if((2)prime(m)){printf(“%d”,m);}}intprime(intn)/*判断n是否为素数*/{intflag=1,i;for(i=2;iif(n%i==0)flag=0;return(__(3)_flag__);}3.下述函数将字符串转换成整数。字符串中允许出现前导空格符、换行符和制表符,除此之外的其他非数字字符开头作0处理。此外,若字符串中出现非数字
{for(j=i;j>0&&a[j]{intt=a[j];a[j]=a[j-1];a[j-1]=t;}}}8.一个C源程序中至少应包括一个main()函数______。9.在一个C源程序中,注释部分两侧的分界符分别为__/*___和__*/___。10.在C语言中,输入操作是由库函数_scanf___完成的,输出操作是由库函数_printf____完成的。11.经过下述赋植后,变量X的数据类型是_整型int______。Intx=2;Doubley;Y=(int)(float)x;12.C语言的基本数据类型分别为__整_int___型、_字符_char____型、_实float_____型。13.若a、b和c均是int类型变量,则执行下面表达式后,a值为___6_____,b值为___4____,c值为___2____。a=(b=4)+(c=2)14.若a是int型变量,则执行下面表达式后,a的值为___2___。a=25/3%315.若x和n均是int型变量,且x和n的初值均为5,则执行下面表达式后,x的值为__10___,n的值为___6____。x+=n++16.若有定义:iloata=2.5,cntb=7;f=4.7;则执行下面表达式的值为__5.5____。a+(int)(b/3*(int)(a+c)/2)%417.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为_8.000000________。18.若有定义:inte=1,f=4,g=2;floatm=10.5,n=4.0,k;则执行赋值表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后,k的值为___13.700000___________。19.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为____int整型___________。20.表达式pow(2.8,sqrt(double(x)))值的数据类型为__double双精度_____。21.若s是int型变量,且s=6,则下面表达式的值为______1_______。s%2+(s+1)%222.若a是int型变量,则下面表达式的值为____26_________。(a=4*5,a*2),a+623.若x和a均是int型变量,则执行表达式(1)后的x值为___12____,执行表达式(2)后的x值为_____4________。(1)x=(a=4,6*2)(2)x=a=4,6*2?24.若有以下定义,则执行表达式y+=y-=m*=y后,y的值为_____-16________intm=5,y=2;25.设C语言中,一个int型数据在内存中占两个字节,则int型数据的取值范围为-32768---32767数组名中存放的是一个地址常量,它代表___数组的首地址_____。2.表示“x≥y≥z”的C语言表达式是_(x>=y&&y>=z)________。3.设ch是字符型变量,判断ch为英文字母的c语言表达式是:(ch>=’A’&&ch<=’Z’)||(ch>=’a’&&ch<=’z’)。4.已知inta[10];int*px=a,*py=&a[3];那么py与px相隔___6______个字节。5.If语句中if总是和__最近_______else匹配。6.从函数的参数来分函数分为_有参函数________、__无参函数______。7.调用函数时,函数名称必须与__被调用函数____________名称完全一致。8.形参变量只有在___调用_______时,才分配内存单元。__调用结束_______时,即刻释放所分配的内存单元。6.从函数的参数来分函数分为_有参函数________、__无参函数______。7.在x值处于-2到2,4到8时值为“真”,否则为“假”的表达式是__(x>=-2&&x<=2)||(x>=4&&x<=8)__________。8.下面函数的功能是___求字符串的长度________________。Intfunl(char*x){char*y=x;while(*y++);return(y-x-1);}。9.设I和x都是int类型,则对于for循环语句for(i=0,x=0;i<9;i++)执行了___9____次。10.在C语言中,逻辑值“真”用__非0的数____________来表示。四、程序运行结果1.下列程序输出的结果是11,13,14,16,17,19,20。Main(){intn;for(n=10;n<=20;n++){if(n%3==0)Continue;Printf(“%d”,n);}}2.下列程序段的输出是______5_________。#definef(a,b,x)a*x+bprintf("%d",f(3,2,1));3.#include#defineM3#defineNM+1main(){printf(“%d\n”,N);}4.main(){intarray[5]={2,4,6,810};int*pointer=array;printf(”%d”,array[0]);printf(”%d”,*(array+1));printf(”%d”,*(pointer+2));printf(”%d”,*(pioter++));}四、程序分析(23分)2.下面程序的功能是什么?#include“stdio.h”main(){inta,b,c,temp;printf(“\n请输入三个数:”);scanf(“%d%d%d”,&a,&b,&c);printf(“a=%d,b=%d,c=%d”,a,b,c);temp=a;a=c;c=b;b=temp;printf(“\n交换之后a=%d,b=%d,c=%d”,a,b,c);}3.下面程序的功能是什么?#includeprime(inta){inte,i,yes;yes=1;e=a/2;i=2;while((i<=e)&&yes)if((a%i)==0)yes=0;elsei++;returnyes;}main(){intx;printf(“输入一个整数给:”);scanf(“%d”,&x);if(prime(x))printf(“YES\n”);elseprintf(“No\n”);}4.下列程序的输出结果是(C)。#includevoidfun();voidmain(){intx=1;if(x==1){intx=2;printf(“%d”,++x);}voidfun(){printf(“%d”,x++);}A)2,1,1B)1,2,1C)2,2,2D)2,2,15.以下程序的输出结果是(C)。main(){char*a[][5]={“how”,”do”,”you”,”do”,”!”};char**p;inti;p=a;for(i=0;i<4;i++)printf(“%s”,p[i]);}A)howdoyoudo!B)howC)howdoyoudoD)hdyd6.下述程序的输出结果为(D)。#includevoidmain(){inta[5]={2,4,6,8,10};int*p=a,**q=&p;printf(“d%,”,*(p++));printf(“%d”,**q);}A)4,4B)2,2C)4,5D)2,4五、程序填空。(27分)1.下面程序是求100—200间的全部素数。#includemain(){(1)intprime(intn);for(m=101;m<=200;m=m+2)if((2)prime(m)){printf(“%d”,m);}}intprime(intn)/*判断n是否为素数*/{intflag=1,i;for(i=2;iif(n%i==0)flag=0;return(__(3)_flag__);}3.下述函数将字符串转换成整数。字符串中允许出现前导空格符、换行符和制表符,除此之外的其他非数字字符开头作0处理。此外,若字符串中出现非数字
{intt=a[j];
a[j]=a[j-1];
a[j-1]=t;
8.一个C源程序中至少应包括一个main()函数______。
9.在一个C源程序中,注释部分两侧的分界符分别为__/*___和__*/___。
10.在C语言中,输入操作是由库函数_scanf___完成的,输出操作是由库函数_printf____完成的。
11.经过下述赋植后,变量X的数据类型是_整型int______。
Intx=2;
Doubley;
Y=(int)(float)x;
12.C语言的基本数据类型分别为__整_int___型、_字符_char____型、_实float_____型。
13.若a、b和c均是int类型变量,则执行下面表达式后,a值为___6_____,b值为___4____,c值为___2____。
a=(b=4)+(c=2)
14.若a是int型变量,则执行下面表达式后,a的值为___2___。
a=25/3%3
15.若x和n均是int型变量,且x和n的初值均为5,则执行下面表达式后,x的值为__10___,n的值为___6____。
x+=n++
16.若有定义:
iloata=2.5,cntb=7;f=4.7;则执行下面表达式的值为__5.5____。
a+(int)(b/3*(int)(a+c)/2)%4
17.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为_8.000000________。
18.若有定义:
inte=1,f=4,g=2;floatm=10.5,n=4.0,k;则执行赋值表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后,k的值为___13.700000___________。
19.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为____int整型___________。
20.表达式pow(2.8,sqrt(double(x)))值的数据类型为__double双精度_____。
21.若s是int型变量,且s=6,则下面表达式的值为______1_______。
s%2+(s+1)%2
22.若a是int型变量,则下面表达式的值为____26_________。
(a=4*5,a*2),a+6
23.若x和a均是int型变量,则执行表达式
(1)后的x值为___12____,执行表达式
(2)后的x值为_____4________。
(1)x=(a=4,6*2)
(2)x=a=4,6*2
?
24.若有以下定义,则执行表达式y+=y-=m*=y后,y的值为_____-16________
intm=5,y=2;
25.设C语言中,一个int型数据在内存中占两个字节,则int型数据的取值范围为-32768---32767
数组名中存放的是一个地址常量,它代表___数组的首地址_____。
2.表示“x≥y≥z”的C语言表达式是_(x>=y&&y>=z)________。
3.设ch是字符型变量,判断ch为英文字母的c语言表达式是:
(ch>=’A’&&ch<=’Z’)||(ch>=’a’&&ch<=’z’)。
4.已知inta[10];int*px=a,*py=&a[3];那么py与px相隔___6______个字节。
5.If语句中if总是和__最近_______else匹配。
6.从函数的参数来分函数分为_有参函数________、__无参函数______。
7.调用函数时,函数名称必须与__被调用函数____________名称完全一致。
8.形参变量只有在___调用_______时,才分配内存单元。
__调用结束_______时,即刻释放所分配的内存单元。
7.在x值处于-2到2,4到8时值为“真”,否则为“假”的表达式是__(x>=-2&&x<=2)||(x>=4&&x<=8)__________。
8.下面函数的功能是___求字符串的长度________________。
。
9.设I和x都是int类型,则对于for循环语句for(i=0,x=0;i<9;i++)执行了___9____次。
10.在C语言中,逻辑值“真”用__非0的数____________来表示。
四、程序运行结果
1.下列程序输出的结果是11,13,14,16,17,19,20。
Main()
{intn;
for(n=10;n<=20;n++)
{if(n%3==0)
Continue;
Printf(“%d”,n);
2.下列程序段的输出是______5_________。
#definef(a,b,x)a*x+b
printf("%d",f(3,2,1));
3.#include
#defineM3
#defineNM+1
printf(“%d\n”,N);}
4.main()
{intarray[5]={2,4,6,810};
int*pointer=array;
printf(”%d”,array[0]);
printf(”%d”,*(array+1));
printf(”%d”,*(pointer+2));
printf(”%d”,*(pioter++));
四、程序分析(23分)
2.下面程序的功能是什么?
#include“stdio.h”
inta,b,c,temp;
printf(“\n请输入三个数:
”);
scanf(“%d%d%d”,&a,&b,&c);
printf(“a=%d,b=%d,c=%d”,a,b,c);
temp=a;
a=c;
c=b;
b=temp;
printf(“\n交换之后a=%d,b=%d,c=%d”,a,b,c);
3.下面程序的功能是什么?
#include
prime(inta)
inte,i,yes;
yes=1;e=a/2;
i=2;
while((i<=e)&&yes)
if((a%i)==0)yes=0;
elsei++;
returnyes;
intx;
printf(“输入一个整数给:
scanf(“%d”,&x);
if(prime(x))printf(“YES\n”);
elseprintf(“No\n”);
4.下列程序的输出结果是(C)。
voidfun();
voidmain()
intx=1;
if(x==1)
intx=2;
printf(“%d”,++x);
voidfun()
printf(“%d”,x++);
A)2,1,1B)1,2,1C)2,2,2D)2,2,1
5.以下程序的输出结果是(C)。
char*a[][5]={“how”,”do”,”you”,”do”,”!
”};
char**p;
inti;
p=a;
for(i=0;i<4;i++)
printf(“%s”,p[i]);
A)howdoyoudo!
B)howC)howdoyoudoD)hdyd
6.下述程序的输出结果为(D)。
inta[5]={2,4,6,8,10};
int*p=a,**q=&p;
printf(“d%,”,*(p++));
printf(“%d”,**q);
A)4,4B)2,2C)4,5D)2,4
五、程序填空。
(27分)
1.下面程序是求100—200间的全部素数。
(1)intprime(intn);
for(m=101;m<=200;m=m+2)
if(
(2)prime(m))
{printf(“%d”,m);}
intprime(intn)/*判断n是否为素数*/
{intflag=1,i;
for(i=2;iif(n%i==0)flag=0;return(__(3)_flag__);}3.下述函数将字符串转换成整数。字符串中允许出现前导空格符、换行符和制表符,除此之外的其他非数字字符开头作0处理。此外,若字符串中出现非数字
if(n%i==0)
flag=0;
return(__(3)_flag__);
3.下述函数将字符串转换成整数。
字符串中允许出现前导空格符、换行符和制表符,除此之外的其他非数字字符开头作0处理。
此外,若字符串中出现非数字
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2