C语言程序设计复习指导.docx
《C语言程序设计复习指导.docx》由会员分享,可在线阅读,更多相关《C语言程序设计复习指导.docx(10页珍藏版)》请在冰豆网上搜索。
C语言程序设计复习指导
C语言程序设计复习指导
一、程序设计题
1、多项式求和(积)
例1:
3!
+5!
+7!
+...+N!
,求直到S>=680000为止的奇数N。
(N=11)
main()
{inti,j;
longs,t=0;
for(i=3;;i=i+2)
{s=1;
for(j=1;j<=i;j++)
s=s*j;
t=t+s;
if(t>=680000)
break;
}
printf("%d",i);
}
例2:
请编程计算1-1/2+1/3-1/4+1/5-...+1/99。
(精确到小数点后3位)。
(0.698)
main()
{inti,t=1;
floats=0;
for(i=1;i<=99;i++)
{s=s+1.0*t/i;
t=-t;
}
printf("%.3f",s);
getch();
}
例3:
1+1/3+1/9+1/27…+1/n>1.489时最小的n。
(n=81)
main()
{inti;
floats=0;
for(i=1;;i=i*3)
{s=s+1.0/i;
if(s>1.489)
break;
}
printf("%d",i);
getch();
}
例4:
求4*(1-1/3+1/5-1/7+…)的值,直到最后一项的绝对值小于10的负6次方为止。
(3.141594)
#include"math.h"
main()
{longi,t=1;
floats=0;
for(i=1;fabs(1.0*t/i)>=0.000001;i=i+2)
{s=s+1.0*t/i;
t=-t;
}
printf("%f",4*s);
getch();
}
2、穷举法的应用
例1:
百钱百鸡问题。
例2:
大作业本单价4元,中作业本单价2元,小作业本单价1元,当天共卖出大中小作业本30本,每种至少卖出1本,金额100元,问大中小作业本共有几种组合情况。
(3)
main()
{
inta,b,c,s=0;
for(a=1;a<=30;a++)
for(b=1;b<=30-a;b++)
{
c=30-a-b;
if(a+b*2+c*4==100)s++;
}
printf("\n%d",s);
}
3、迭代法的应用
例1:
已知一个数列的前三个数是1,2,3,从第四个数起,每个数都是前三个数之和。
下面的程序是求出该数列的第15个数。
程序可能有错误,如有错误请改正,将运算结果填入文本框。
(4841)
main()
{
inta[15]={1,2,3},i=4;
while(i=15)
{a[i]=a[i-1]+a[i-2]+a[i-3];
i=i+1;
}
printf("%d",a[15]);
}
4、拆数技巧的应用
例1:
计算各位数字之和等于30的4位偶数的个数。
例2:
回文数。
5、求素数、完数、水仙花数等。
例:
已知函数f是判断素数的函数。
编写程序计算500-1000之间素数的和。
(54591)
f(longn)
{
longi,j=n/2;
if(n<2)return0;
for(i=2;i<=j;i++)
if(n%i==0)return0;
return1;
}
main()
{
longi,s=0;
for(i=500;i<=1000;i++)
if(f(i))s=s+i;
printf("%ld",s);
getch();
}
二、选择题
习题三一、二2、三3
习题四一、二
习题五一、二、三1、2、4、7
习题六一、二
习题七一
已知宏定义#defineSQ(x)x*x,执行语句printf("%d",10/SQ(3));后的输出结果是____。
A)1B)3C)9D)10
【1.1】 以下不正确的C语言标识符是____。
A)intB)a_1_2C)ab1exeD)_x
【1.2】以下是正确的C语言标识符是____。
A)#defineB)_123C)%dD)\n
【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是____。
A)print B)i\am C)Pxq D)str_l
_3d one_half My->book Cpp
oodb start$it line# pow
aBc 3pai His.age while
【1.4】下面各选项组中,均是C语言关键字的组是____。
A)auto,enum,includeB)switch,typedef,continue
C)signed,union,scanfD)if,struct,type
【1.5】下列不属于C语言关键字的是_____。
A)defaultB)registerC)enumD)external
【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。
A)程序文件的开始B)程序文件的最后
C)它所调用的函数的前面D)程序文件的任何位置
【1.7】下列关于C语言的叙述错误的是____
A)大写字母和小写字母的意义相同
B)不同类型的变量可以在一个表达式中
C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D)同一个运算符号在不同的场合可以有不同的含义
【1.8】在C语言中,错误的int类型的常数是____。
A)32768B)0C)037D)0xAF
【1.9】执行语句printf("%x",-1);屏幕显示____。
A)-1B)1C)-ffffD)ffff
【1.11】已知longi=65539;执行语句printf("%d",i);屏幕显示____。
A)65539B)-3C)3D)程序不能执行
【1.12】在C语言中,整数-8在内存中的存储形式是____。
A)1111111111111000B)1000000000001000
C)0000000000001000D)1111111111110111
【1.13】C语言中字符型(char)数据在内存中的存储形式是____。
A)原码B)补码C)反码D)ASCII码
【1.14】将字符g赋给字符变量c,正确的表达式是____。
A)c=\147B)c="\147"C)c='\147'D)c='0147'
【1.15】下列转义字符中错误的一个是____。
A)'\000'B)'\0014'C)'\x111'D)'\2'
【1.16】将空格符赋给字符变量c,正确的赋值语句是____。
A)c='\0'B)c=NULLC)c=0D)c=32
【1.17】已知:
chara='\70';则变量a中____。
A)包含1个字符B)包含2个字符C)包含3个字符D)说明非法
【1.18】字符串"\"EOF\n=-\61\""的长度是____。
A)8B)9C)14D)非法字符串
【1.19】字符串""的长度是____。
A)0B)1C)2D)非法字符串
【1.20】已知:
chara;intb;floatc;doubled;执行语句"c=a+b+c+d;"后,变量c的数据类型是____。
A)intB)charC)floatD)double
【1.21】温度华氏和摄氏的关系是:
C=(5/9)(F-32)。
已知:
floatC,F;由华氏求摄氏的正确的赋值表达式是____。
A)C=5/9(F-32)B)C=5*(F-32)/9
C)C=5/9*(F-32)D)三个表达式都正确
【1.22】逗号表达式"(a=3*5,a*4),a+15"的值是____。
A)15B)60C)30D)不确定
【1.23】如果inta=1,b=2,c=3,d=4;则条件表达式"a
a:
cc:
d"的值是____。
A)1B)2C)3D)4
【1.24】为求出s=10!
的值,则变量s的类型应当为____。
A)intB)unsigedC)longD)以上三种类型均可
【1.25】已知inti=10;表达式"20-0<=i<=9"的值是____。
A)0B)1C)19D)20
【1.26】已知intx=1,y;执行语句y=++x>5&&++x<10;后变量x的值是____。
A)1B)2C)3D)4
【1.27】为判断字符变量c的值不是数字也不是字母时,应采用下述表达式____。
A)c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122
B)!
(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122)
C)c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122
D)!
(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)
【1.28】已知inta[3][2]={3,2,1};则表达式"a[0][0]/a[0][1]/a[0][2]"的值是____。
A)0.166667B)1C)0D)错误的表达式
【1.29】已知intx=1,y=1,z=1;表达式"x+++y+++z++"的值是____。
A)3B)4C)5D)表达式错误
【1.30】用十进制表示表达式"12|012"的值是____。
A)1B)0C)12D)14
【1.31】已知以下程序段____:
inta=3,b=4;
a=a^b;
b=b^a;
a=a^b;
则执行以上语句后a和b的值分别是____。
A)a=3,b=4B)a=4,b=3C)a=4,b=4D)a=3,b=3
【1.32】在位运算中,操作数每右移一位,其结果相当于____。
A)操作数乘以2B)操作数除以2C)操作数除以16D)操作数乘以16
【1.33】已知chara=222;执行语句a=a&052;后,变量a的值是____。
A)222B)10C)244D)254
【1.34】已知二进制数a是00101101,如果想通过整型变量b与a做异或运算,使变量a的高4位取反,低4位不变,则二进制数b的值应是____。
A)11110000B)00001111C)11111111D)00000000
【1.35】已知inta=15,执行语句a=a<<2以后,变量a的值是____。
A)20B)40C)60D)80
【1.36】已知intx=5,y=5,z=5;执行语句x%=y+z;后,x的值是____。
A)0B)1C)5D)6
【1.37】使用语句scanf("x=%f,y=%f",&x,&y);输入变量x、y的值(□代表空