C语言基础练习100题(含标准答案)
C语言基础练习100题(含答案)
雷柳青编排
1、下面程序的输出是________
#include
void main()
{ int k=11。
printf("k=%d,k=%o,k=%x\n",k,k,k)。
}
A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b
2、在下列选项中,不正确的赋值语句是________.
A) ++t。B) n1=(n2=(n3=0))。
C) k=i=j。D) a=b+c=1。
3、下面合法的C语言字符常量是__________.
A) '\t' B) "A" C) 65 D) A
4、字符(char)型数据在微机内存中的存储形式是____.
A) 反码B) 补码C) EBCDIC码D) ASCII码
5、设int a=12,则执行完语句a+=a-=a*a后,a的值是________
A) 552 B) 264 C) 144 D) -264
6、执行下面程序中的输出语句后,输出结果是______.
#include
void main()
{int a。
printf("%d\n",(a=3*5,a*4,a+5))。
}
A) 65 B) 20 C) 15 D) 10
7、下面程序的输出是__________.
#include
void main()
{int x=023。
printf("%d\n",--x)。
}
A) 17 B) 18 C) 23 D) 24
8、下面程序的输出是___________.
#include
void main()
{char ch1,ch2。
ch2='A'+'6'-'3'。
printf("%d,%c\n",ch1,ch2)。
}
A) 67,D B) B,C C) C,D D) 不确定的值
9、以下程序的输出结果是________.
#include
void main()
{ int x=10,y=10。
printf("%d %d\n",x--,--y)。
}
A) 10 10 B) 9 9 C) 9 10 D) 10 9
10、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:
printf("%d",(x,y))。
上面程序片段的输出结果是_______.
A) 200 B) 100
C) 100 200 D) 输出格式符不够,输出不确定的值
11、阅读下面的程序
#include
void main()
{
int i,j。
i=010。
j=9。
printf("%d,%d",i-j,i+j)。
}
则程序的运行结果是________.
A) 1,19 B) -1,19C) 1,17 D) -1,17
12、阅读下面的程序
#include
void main()
{
int i,j,m,n。
i=8。j=10。
m=++i。
n=j++。
printf("%d,%d,%d,%d",i,j,m,n)。
}
程序的运行结果是_________.
A) 8,10,8,10 B) 9,11,8,10
13、若已定义int a,则表达式a=10,a+10,a++的值是___.
A) 20 B) 10 C) 21 D) 11
14、阅读下面的程序
#include
void main()
{
int i,j。
scanf("%3d%2d",&i,&j)。
printf("i=%d,j=%d\n",i,j)。
}
如果从键盘上输入1234567<回车>,则程序的运行结果是________.
A) i=123,j=4567 B) i=1234,j=567
C) i=1,j=2 D) i=123,j=45
15、下面程序的输出结果是________.
#include
void main()
{
int a=-1, b=4, k。
k=(++a<=0)&&(b--<=0)。
printf("%d,%d,%d\n",k,a,b)。
}
A) 1,1,2 B) 1,0,3C) 0,1,2 D) 0,0,3
16、下面程序的输出结果是_______.
#include
void main()
{
int a=5,b=3。
float x=3.14, y=6.5。
printf("%d,%d\n",a+b!=a-b,x<=(y-=6.1))。
}
A) 1,0 B) 0,1C) 1,1 D) 0,0
17、若有以下定义和语句:
int a=010, b=0x10, c=10。
printf("%d,%d,%d\n",a,b,c)。
则输出结果是_________.
A) 10,10,10 B) 8,16,10 C) 8,10,10 D) 8,8,10
18、已知有double型变量x=2.5,y=4.7,整型变量a=7, 则表达式x+a%3*(int)(x+y)%2/4 的值是_________.
A) 2.4 B) 2.5 C) 2.75 D) 0
19、设有以下语句:int x=10。x+=3+x%3,则x的值是._________
A) 14 B) 15 C) 11 D) 12 20、若d为double型变量,则表达式d=1,d+5,d++的值是_______.
A) 1 B) 6.0 C) 2.0 D) 1.0
21、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a的值__________.
A) 0 B) 1 C) 12 D) 6
22、若有定义int x=3,y=2和float a=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是____.
A) 0 B) 2 C) 1.5 D) 1
23、在C语言中,以下叙述不正确的是________.
A) 在C程序中,无论是整数还是实数,都能被准确无误
的表示
B) 在C程序中,变量名代表存储器中的一个位置
C) 静态变量的生存期与整个程序的生存期相同
D) C语言中变量必须先定义后引用
24、设a为整型变量,不能正确表达数学关系10 A) 1010&&a<15 D) !(a<=10)&&!(a>=15) 25、如果c为字符型变量,判断c是否为空格不能使用________.(假设已知空格ASCII码为32) A) if(c=='32') B) if(c==32) C) if(c=='\40') D) if(c==' ') 26、执行下面程序时,若从键盘输入"2 #include void main( ) { int k。char cp。 cp=getchar( )。 if (cp>='0' && cp<='9') k=cp-'0'。 else if (cp>='a' && cp<='f') k=cp-'a'+10。 else k=cp-'A'+10。 printf("%d\n",k)。 } A) 2 B) 4 C) 1 D) 10 27、执行下面程序后,运行结果是________. #include void main( ) { int x=41,y=1。 if (x%3==0 && x%7==0) { y+=x。printf("y=%d\n",y)。} {y=x。printf("y=%d",y)。} } A) y=41 B) y=43 C) y=42 D) y=1 28、运行下面程序时,从键盘输入"12,34,9 #include void main( ) { int x,y,z。 scanf("%d,%d,%d",&x,&y,&z)。 if (x if (y else printf("%d\n",y)。 else if (x else printf("%d\n",x)。 } A) 34 B) 12 C) 9 D) 不确定的值 29、运行下面程序时,从键盘输入字母H,则输出结果是________. #include void main( ) { char ch。 ch=getchar( )。 switch(ch) { case 'H':printf("Hello!\n")。 case 'G':printf("Good morning!\n")。 default:printf("Bye_Bye!\n")。 } } A) Hello! B) Hello! Good Morning! C) Hello! D) Hello! Goodmorning! Bye_Bye! Bye_Bye! 30、执行下列程序段后的输出结果是_________. int x=1,y=1,z=1。 x+=y+=z。 printf("%d\n",x A) 3 B) 2 C) 1 D) 4 31、设ch是char型变量,值为'A',则表达式ch=(ch>='A' && ch<='Z')?ch+32:ch的值是_____. A) Z B) a C) z D) A 32、下面程序的输出结果是________. #include if (x if (y<0) z=0。 else z-=1。 printf("%d\n",z)。 } A) 8 B) 1 C) 9 D) 0 33、运行下面程序时,若从键盘输入"3,4 #include void main( ) { int a,b,s。 scanf("%d,%d",&a,&b)。 s=a。 if (s s=s*s。 printf("%d\n",s) 。 } A) 14 B) 16 C) 18 D) 20 34、下列程序的执行结果是_________. #include void main( ) { int x=0,y=1,z=0。 if (x=z=y) x=3。 printf("%d,%d\n",x,z)。 } A) 3,0 B) 0,0 C) 0,1 D) 3,1 35、能够完成如下函数计算的程序段是______. ┌-1 x<0 y= ┤0 x=0 └ 1 x>0 A) y=1。B) if (x>=0) if(x!=0)if(x>0) y=1。 if(x>0) y=1。else y=0。 else y=0。else y=-1。 C) y=0。D) y=-1。 if (x>=0) if (x>0) y=1。 if (x>0) y=1。else y=0。 else y=-1。 36、以下程序的执行结果是________. #include void main( ) { int x=1,y=0。 { case 1: switch (y) { case 0:printf("first\n")。break。 case 1:printf("second\n")。break。 } case 2:printf("third\n")。 } } A) first B) first second third C) first D) second third 37、以下程序的执行结果是________. #include void main( ) { int a,b,c,d,x。 a=c=0。 b=1。 d=20。 if (a) d=d-10。 else if(!b) if (!c) x=15。 else x=25。 printf("d=%d\n",d)。 } A) d=20 B) d=10 C) d=15 D) 25 38、下列程序执行后的输出结果是________. #include void main( ) { int x,y=1,z。 if ((z=y)<0) x=4。 else if (y==0) x=5。 else x=6。 printf("%d,%d\n",x,y)。 } A) 4,1 B) 6,1 C) 5,0 D) 出错信息 39、有如下程序 #include void main( ) { int x=1,a=0,b=0。 switch(x) { case 0: b++。 case 2: a++。b++。 } printf("a=%d,b=%d\n",a,b)。 } 该程序的输出结果是__________. A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2 40、下面程序的输出结果是_________. #include void main( ) { int a=-1,b=1,k。 if ((++a<0) && (b--<=0)) printf("%d %d\n",a,b)。 else printf("%d %d\n",b,a)。 } A) -1 1 B) 0 1 C) 1 0 D) 0 0 41、假定w、x、y、z、m均为int型变量,有如下程序段: w=1。x=2。y=3。z=4。 m=(w A) 4 B) 3 C) 2 D) 1 42、以下程序的输出结果是_________. main( ) { int a=100。 if (a>100) printf("%d\n",a>100)。 else printf("%d\n",a<=100)。 } A) a<=100 B) 100 C) 0 D) 1 43、若执行下面的程序从键盘上输入9,则输出结果是.______________ #include void main( ) {int n。 scanf("%d",&n)。 if (n++<10) printf("%d\n",n)。 else printf("%d\n",n--)。} A) 11 B) 10 C) 9 D) 8 44、以下程序段运行结果是________. int x=1,y=1,z=-1。 x+=y+=z。 printf("%d\n",x A) 1 B) 2 C) 4 D) 不确定的值 #include void main( ) { int a,b,c=246。 a=c/100%9。 b=(-1)&&(-1)。 printf("%d,%d\n",a,b)。 } 输出结果是________. A) 2,1 B) 3,2 C) 4,3 D) 2,-1 46、运行下面程序时,若从键盘输入数据为"123",则输出结果是_______. #include "stdio.h" void main() { int num,i,j,k,place。 scanf("%d",&num)。 if (num>99) place=3。 else if(num>9) place=2。 else place=1。 i=num/100。 j=(num-i*100)/10。 k=(num-i*100-j*10)。 switch (place) { case 3: printf("%d%d%d\n",k,j,i)。 break。 case 2: printf("%d%d\n",k,j)。 break。 case 1: printf("%d\n",k)。 } } A) 123 B) 1,2,3C) 321 D) 3,2,1 47、执行下列程序后的输出结果是_______. #include void main( ) { int k=4,a=3,b=2,c=1。 printf("%d\n",k } A) 4 B) 3 C) 2 D) 1 48、以下条件表达式中能完全等价于条件表达式if(x)中的x 的是____. A) (x==0) B) (x!=0) C) (x==1) D) (x!=1) 是______. #include void main( ) { int a,b。 scanf("%d",&a)。 b=a>15?a+10:a-10。 printf("%d\n",b) 。 } A) 5 B) 25 C) 15 D) 10 50、执行下面程序的输出结果是________. #include void main( ) { int a=5,b=0,c=0。 if (a=a+b) printf("****\n")。 else printf("####\n")。 } A) 有语法错误不能编译 B) 能通过编译,但不能通过连接 C) 输出**** D) 输出#### 51、为了避免嵌套的if-else语句的二义性,C语言规定else总是与______组成配对关系. A) 缩排位置相同的if B) 在其之前未配对的if C) 在其之前尚未配对的最近的if D) 同一行上的if 52、以下程序段__________. x=-1。 do { x=x*x。 } while (!x)。 A)是死循环B)循环执行两次 C)循环执行一次D)有语法错误 53、对下面程序段描述正确的是_______. int x=0,s=0。 while (!x!=0) s+=++x。 printf("%d",s)。 A) 运行程序段后输出0 B) 运行程序段后输出1 C) 程序段中的控制表达式是非法的 D) 程序段循环无数次 x=3。 do { y=x--。 if (!y) {printf("*")。continue。} printf("#")。 } while(x=2)。 A) ## B) ##* C) 死循环D)输出错误信息 55、下面程序的运行结果是_______. #include void main( ) { int a=1,b=10。 do { b-=a。a++。 } while(b--<0)。 printf("%d,%d\n",a,b)。 } A) 3,11 B) 2,8 C) 1,-1 D) 4,9 56、下面程序段的运行结果是__________. int n=0。 while (n++<=2) printf("%d",n)。 A) 012 B) 123C) 234 D) 错误信息 57、下面程序段的运行结果是________. int x=0,y=0。 while (x<15) y++,x+=++y。 printf("%d,%d",y,x)。 A) 20,7 B) 6,12 C) 20,8 D)8,20 58、下面程序的运行结果是________. #include void main() { int s=0,i=1。 while (s<=10) { s=s+i*i。 i++。 } printf("%d",--i)。 } A) 4 B) 3 C) 5 D) 6 59、下面程序段的运行结果是________. for(x=10。x>3。x--) { if(x%3) x--。 --x。--x。 printf("%d ",x)。 } A) 6 3 B) 7 4 C) 6 2 D) 7 3 60、下面程序的运行结果是________. #include void main( ) { int a,b。 a=-1。 b=0。 do { ++a。 ++a。 b+=a。 } while(a<9)。 printf("%d\n",b)。 } A) 34 B) 24 C) 26 D) 25 61、下面程序段的运行结果是___________. for(i=1。i<=5。) printf("%d",i)。 i++。 A) 12345 B) 1234 C) 15 D) 无限循环 62、下面程序的输出结果是__________. #include void main( ) { int n=4。 while (n--) printf("%d ",n--)。 } A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 0 63、以下程序运行后的输出结果是________. #include void main() { int i=10,j=0。 do { j=j+1。i--。 }while(i>2)。 printf("%d\n",j)。 } A) 50 B) 52 C) 51 D) 8 64、有如下程序 #include void main() { int x=23。 do { printf("%d",x--)。 }while(!x)。 } 该程序的执行结果是_______ A) 321 B) 23 C) 不输出任何内容D) 陷入死循环 65、以下程序段的执行结果是_______. int i,j,m=0。 for(i=1。i<=15。i+=4) for(j=3。j<=19。j+=4) m++。 printf("%d\n",m)。 A) 12 B) 15 C) 20 D) 25 66、下面程序的输出结果是___________. #include void main( ) { int i。 for(i=1。i<6。i++) { if (i%2!=0) {printf("#")。continue。} printf("*")。 } printf("\n")。 } A) #*#*# B) ##### C) ***** D) *#*#* 67、下面程序的输出结果是__________. #include void main( ) { int x=10,y=10,i。 for(i=0。x>8。y=++i) printf("%d %d ",x--,y)。 } A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1 68、执行以下程序后,输出的结果是__________. #include void main( ) { int y=10。 do {y--。} while (--y)。 printf("%d\n",y--)。 } A) -1 B) 1C) 8 D) 0 69、有如下程序 #include void main( ) { int n=9。 while(n>6) {n--。printf("%d",n)。} } 该程序段的输出结果是__________. A) 987 B) 876 C) 8765 D) 9876 70、有如下程序 #include void main( ) { int i,sum=0。 for(i=1。i<=3。sum++) sum+=i。 printf("%d\n",sum)。 } 该程序的执行结果是___________. A) 6 B) 3 C) 死循环D) 0 71、以下循环体的执行次数是_______ #include void main( ) { int i,j。 for(i=0,j=1。i<=j+1。i+=2, j--) printf("%d \n",i)。 } A) 3 B) 2 C) 1 D) 0 72、在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为________. #include void main( ) { char ch。 while ((ch=getchar( ))!='\n') { if (ch>='A' && ch<='Z') ch=ch+32。 else if (ch>='a' && ch<'z') ch=ch-32。 printf("%c",ch)。 } printf("\n")。 } A) ABCdef B) abcDEF C) abc D) DEF 73、下面程序的输出结果是__________. main( ) { int i,k=0, a=0, b=0。 for(i=1。i<=4。i++) { k++。 if (k%2==0) {a=a+k。continue。} b=b+k。 a=a+k。 } printf("k=%d a=%d b=%d\n",k,a,b)。 } A) k=5 a=10 b=4 B) k=3 a=6 b=4 C) k=4 a=10 b=3 D) k=4 a=10 b=4 74、执行下面程序段后,k的值是_________. int i,j,k。 for(i=0,j=10。i k=i+j。 A) 9 B) 11 C) 8 D) 10 75、以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。________ #include void main( ) { float x,amax,amin。 scanf("%f",&x)。 amax=x。 amin=x。 while (________ ) { if (x>amax) amax=x。 if (______) amin=x。 scanf("%f",&x)。 } printf("\namax=%f\namin=%f\n",amax,amin)。 } A) x<=0 B) x>0 C) x>0 D) x>=0 x>amin x<=amin x>amin x 76、阅读以下程序,程序运行后的输出结果是______. #include void main( ) { int x。 for(x=5。x>0。x--) if (x--<5) printf("%d,",x)。 else printf("%d,",x++)。} A) 4,3,2 B) 4,3,1, C) 5,4,2 D) 5,3,1, 77、以下程序段的输出结果是_______. int k,n,m。 n=10。m=1。k=1。 while (k<=n) {m*=2。k+=4。} printf("%d\n",m)。 A) 4 B) 16 C) 8 D) 32 78、语句while(!e)。中的条件!e 等价于________. A) e==0 B) e!=1 C) e!=0 D) ~e 79、以下叙述正确的是_________. A) continue语句的作用是结束整个循环的执行C) 在循环体内使用break语句或continue语句的作用 相同 D) 从多层循环嵌套中退出时,只能使用goto语句 80、在下列选项中,没有构成死循环的程序段是____. A) int i=100。B) for( 。。)。 while (1) { i=i%100+1。 if (i>100) break。 } C) int k=1000。D) int s=36。 do {++k。} while (k>=1000)。while (s) --s。 81、下面程序的输出结果是________. #include void main( ) { int i。 for(i=1。i<=5。i++) { if (i%2) printf("*")。 else continue。 printf("#")。 } printf("$\n")。 } A) *#*#*#$ B) #*#*#*$ C) #*#*$ D) *#*#$ 82、下面程序段中,循环体的执行次数是_________. int a=10,b=0。 do {b+=2。a-=2+b。} while(a>=0)。 A) 4 B) 5 C) 3 D) 2 83、若i为整型变量,则以下循环语句的循环次数是__. for(i=2。i==0。) printf("%d",i--)。 A) 无限次B) 0次C) 1次D) 2次 84、对于for(表达式1。。表达式3)可理解为_________. A) for(表达式1。0。表达式3) B) for(表达式1。1。表达式3) C) for(表达式1。表达式1。表达式3) D) for(表达式1。表达式3。表达式3) 85、合法的数组定义是________. A) int a[6]={"string"}。B) int a[5]={0,1,2,3,4,5}。 C) char a={"string"}。D) char a[]={0,1,2,3,4,5}。 86、给出以下定义: char x[ ]="abcdefg"。 char y[ ]={'a','b','c','d','e','f','g'}。 A) 数组x和数组y等价 B) 数组x和数组y的长度相同 C) 数组x的长度大于数组y的长度 D) 数组x的长度小于数组y的长度 87、定义如下变量和数组: int i。 int x[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}。则下面语句的输出结果是_______. for(i=0。i<4。i++) printf("%3d",x[i][3-i])。 A) 1 5 9 13 B) 1 6 11 16 C) 4 7 10 13 D) 4 8 12 16 88、下面程序输出的结果是________. #include void main( ) { int i,j,x=0。 static int a[6]={1,2,3,4,5,6}。 for(i=0,j=1。i<5。++i,j++) x+=a[i]*a[j]。 printf("%d\n",x)。 } A) 数组a中首尾的对应元素的乘积 B) 数组a中首尾的对应元素的乘积之和 C) 数组a中相邻各元素的乘积 D) 数组a中相邻各元素的乘积之和 89、若有以下说明: char s1[ ]={"tree"},s2[]={"flower"}。, 则以下对数组元素或数组的输出语句中,正确的是_____. A) printf("%s%s",s1[5],s2[7])。 B) printf("%c%c",s1,s2)。 C) puts(s1)。puts(s2)。D) puts(s1,s2)。 90、运行下面程序段的输出结果是_______. char s1[10]={'S','e','t','\0','u','p','\0'}。 printf("%s",s1)。 A) Set B) Setup C) Set up D) 'S''e''t' 91、以下程序段的输出结果是________. char s[ ]="an apple"。 printf("%d\n",strlen(s))。 A) 7 B) 8 C) 9 D) 10 92、若有说明:char c[10]={'E','a','s','t','\0'}。,则下述说法中正确的是__________. A) c[7]不可引用B) c[6]可引用,但值不确定C) c[4]不可引用D) c[4]可引用,其值为空字符A) c[0] B) c[9-6] C) c[4*2] D) c[2*3] 94、如有说明:char s1[5],s2[7]。,要给数组s1和s2整体赋值,下列语句中正确的是________. A) s1=getchar()。s2=getchar()。 B) scanf("%s%s",s1,s2)。 C) scanf("%c%c",s1,s2)。 D) gets(s1,s2)。 95、以下程序输出的结果是_________. #include void main( ) { char str[ ]="1a2b3c"。int i。 for(i=0。str[i]!='\0'。i++) if(str[i]>='0'&&str[i]<='9') printf("%c",str[i])。 printf("\n")。 } A) 123456789 B) 1a2b3cC) abc D) 123 96、以下程序输出的结果是________. #include void main( ) { int a[ ]={5,4,3,2,1},i,j。 long s=0。 for(i=0。i<5。i++) s=s*10+a[i]。 printf("s=%ld\n",s)。 } A) s=12345 B) s=5 4 3 2 1 C) s=54321 D) 以上都不对 97、在定义int a[5][6]。后,数组a中的第10个元素是.________(设a[0][0]为第一个元素) A) a[2][5] B) a[2][4] C) a[1][3] D) a[1][5] 98、当接受用户输入的含有空格的字符串时,应使用________函数. A) gets( ) B) getchar( ) C) scanf( ) D) printf( ) 99、以下一维数组a的正确定义是________ . A) int a(10)。B) int n=10,a[n]。 C) int n。D) #define SIZE 10 scanf("%d",&n)。int a[SIZE]。 int a[n]。 100、以下对二维数组a进行正确初始化的是_______. A) int a[2][3]={ {1,2},{3,4},{5,6} }。 B) int a[ ][3]={1,2,3,4,5,6 }。 C) int a[2][ ]={1,2,3,4,5,6}。 D) int a[2][ ]={ { 1,2},{3,4}}。 答题卡 班级______姓名__________得分_________ 参考答案: 1~5 DDADD 6~10 BBADA 11-15 DCDDD 15-20 ABBAD 21-25 ADAAA 26-30 AAACA 31-35 BCBDB 36-40 BABAC 41-45 DDBAA 46-50 CDBAC 51-55 CCBCB 56-60 BCBBD 61-65 DBDBC 66-70 ADDBC 71-75 CBDDD 76-80 BCABD 81-85 ACBBD 86-90 CCDCA 91-95 BDCBD 96-100CCADB 5-1求幂之和(15分) 本题要求编写程序,计算sum=2^1+2^2+2^3+\cdots+2^n sum=21+22+23++2n。可以调用pow函数求幂。 输入格式: 输入在一行中给出正整数n n(\le≤10)。 输出格式: 按照格式“result=计算结果”输出。 输入样例: 输出样例: #include<> #include<> intmain() { inti,n,sum=0; scanf("%d",&n); for(i=1;i<=n;i++) { sum=sum+pow(2,i); } printf("result=%d\n",sum); return0; } 5-2近似求PI(15分) 本题要求编写程序,根据下式求\piπ的近似值,直到最后一项小于给定精度eps。 \frac{\pi}{2}=1+\frac{1!}{3}+\frac{2!}{3\times5}+\frac{3!}{3\times5\times7}+\ cdots+\frac{i!}{3\times5\times\cdots\times(2\timesi+1)}+\cdots2π=1+31!+3×52!+3×5×73!++3×5××(2×i+1)i!+ 输入格式: 输入在一行中给出精度eps,可以使用以下语句来读输入: 输出格式: 在一行内,按照以下格式输出\piπ的近似值(保留小数点后5位): 输入样例: 输出样例: #include<> #include<> intmain() { doublea=1,b=3,i=1,j=3; doubleeps,m=1,sum=0; scanf("%le",&eps); while(m>eps) { m=a/b; sum=sum+m; i=i+1; j=j+2; a=a*i; b=b*j; } printf("PI=%.5lf\n",2+2*sum); C语言程序设计基础测试题 一、单选 [1] 下面叙述中错误的是____。 A. 复合语句中定义的函数只在该复合语句中有效 B. return( )语句中的括号中,可以是变量,常量或有确定值的表达式 C. 形式参数也是局部变量 D. 主函数中定义的变量在整个程序中都是有效的 [2]下列说法中正确的是____。 A.带参数的宏定义中的参数是没有类型的 B.宏展开将占用程序的运行时间 C.宏定义命令是C语言中的一种特殊语句 D.使用#include命令包含的头文件必须以“.h"为后缀 [3.] 若函数的形参为一维数组,则下列说法中正确的是____。 A.调用函数时的对应实参必为数组名 B.形参数组可以不指定大小 C.形参数组的元素个数必须等于实参数组的元素个数 D.形参数组的元素个数必须多于实参数组的元素个数 [4]. 系统的标准输出设备是____。 A.键盘 B.硬盘 C.内存 D.显示器 [5] 下面叙述中正确的是____。 A.全局变量在定义它的文件中的任何地方都是有效的 B.全局变量在程序的全部执行过程中一直占用内存单元 C. C语言的switch语句中case后可为常量或表达式或有确定值的变量及表达式 D. 说明函数时必须明确其参数类型和返回类型 [6]. C程序的基本结构单位是____。 A.文件 B.语句 C.函数 D.表达式 [7] 对于定义,char *aa[2]={"abcd","ABCD"},选项中说法正确的是____。 A.aa数组元素的值分别是"abcd"和"ABCD" B.aa是指针变量,它指向含有两个数组元素的字符型一维数组 C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D.aa数组的两个元素中各自存放了字符'a'和'A'的地址 [8]. 任何一个C语言的可执行程序都是从____开始执行的。 A.程序中的第一个函数 B.main( )函数的入口处 《C语言程序设计》习题篇 第一章C语言基础知识 1.1 选择题 1. 以下不是C语言的特点的是()。 A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.no.1 C._123_ D._ok 3.正确的C语言标识符是()。 A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 5.下列符号中,不属于转义字符的是()。 A.\\ B.\0xAA C.\t D.\0 6.不属于C语言关键字的是()。 A.int B.break C.while D.character 7.是C语言提供的合法关键字的是()。 A.Float B.signed C.integer D.Char 8.以下不能定义为用户标示符的是()。 A.scanf B.V oid C._3com_ D.int 9.一个C程序是由()。 A.一个主程序和若干子程序组成 B.一个或多个函数组成 C.若干过程组成 D.若干子程序组成 10. C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 11.下列说法中,错误的是()。 A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外 C.主函数只能调用用户函数或系统函数,用户函数可以相互调用 1. 某城市出租车收费标准如下:起步里程是3 公里,起步费是10 元;超出起步里程后每公里 1.5 元。编写程序,输入行驶里程(公里) ,计算并输出乘客应支付的车费(元)。 #include 第一单元程序设计和C语言 一、选择题 1.C语言的基本构成单位是: A 。 A. 函数 B. 函数和过程 C. 超文本过程 D. 子程序 2.一个C语言程序总是从 B 开始执行。 A. 主过程 B. 主函数 C. 子程序 D.主程序 3.C语言的程序一行写不下时,可以 D 。 A. 用逗号换行 B. 用分号换行 C. 在任意一空格处换行 D. 用回车符换行 4.以下叙述不正确的是: C 。 A. 在C程序中,语句之间必须要用分号";"分隔 B. 若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数 C. 在C程序中,无论是整数还是实数都能正确无误地表示 D. 在C程序中,%是只能用于整数运算的运算符 5.以下不正确的C语言标识符是 D 。 A. ABC B. abc C. a_bc D. ab.c 6.下列字符串是标识符的是:。 ? A. _HJ B. 9_student C. long D. LINE 1 7.以下说法中正确的是: C 。 A. C语言程序总是从第一个定义的函数开始执行 B. 在C语言程序中,要调用的函数必须放在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分 8.不合法的常量是: B 。 A. ‘\2’ B. "" C. ‘3’ D. ‘\483’ 9.已知各变量的类型说明如下,则以下不符合C语言语法的表达式是:。 int k,a,b; unsigned long w=5; double x=1.422; A. x%(-3) B. W += -2 C. k=(a=2,b=3,a+b) D. a+=a=+(b=4)*(a=3) 10.在C语言中,字符型数据在内存中以 D 形式存放。 A. 原码 B. BCD码 C. 反码 D. ASCII码 11.若有定义:int a=7; float x=2.5; y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是: A 。 C语言编程基础考试试题 文档名称文档密级 C语言编程基础考试 [考前说明]本题目中不考虑头文件引用问题(假定已经包含正确的头文件),C 语言的标 准函数都可用;如果不特别说明, 假定程序运行环境为:操作系统Windows 2000, VC6.0编译环境,缺省为四字节对齐, X86(80586)CPU处理器(32位小字节序处理器). 一、单选题 1、给出以下定义: char acX[ ]= "abcdefg"; char acY[ ]= {'a','b','c','d','e','f','g'}; 则正确的叙述为( ) A) 数组acX和数组acY等价 B) 数组acX和数组acY的长度相同 C) 数组acX的长度大于数组acY的长度 D) 数组acX的长度小于数组Y的长度 2、 void example(char acHello[]) { printf("%d", sizeof(acHello)); return; } void main() { char acHello[] = "hello"; example(acHello); return; } 的输出是( ) A 4 B 5 C 6 D不确定 3、以下叙述中不正确的是( ) A) 在不同的函数中可以使用相同名字的变量 B) 函数中的形式参数是在栈中保存 C) 在一个函数内定义的变量只在本函数范围内有效 D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数 中的成对括号构成的代码) 4、设有如下定义: unsigned long pulArray[] = {6, 7, 8, 9, 10}; unsigned long *pulPtr; 则下列程序段的输出结果为( ) 1 文档名称文档密级 pulPtr = pulArray; *(pulPtr + 2) += 2; printf ("%d,%d\n", *pulPtr, *(pulPtr + 2)); A)8,10 B)6,8 C)7,9 D)6,10 C语言基础练习100题(含答案) 雷柳青编排 1、下面程序的输出是________ #include 《C语言编程基础(第2版)》习题答案 前言 《C语言编程基础(第2版)》每章后面都安排了一定数量的习题,这有利于读者理解、消化和掌握各单元的学习内容。习题中,除了有填空题、选择题、回答问题等适合掌握基本概念的题型外,大部分是分析程序运行结果和要求编写实用程序,这有利于读者训练编程技巧和增强编程能力。应广大读者要求,特别是一线教学老师的要求,我们给出全部习题答案,供读者参考。编程答案只是实现题目算法要求的一种,并不一定是最好的。希望读者自己多做思考,利用多种方法进行编程,用以提高自己的程序设计水平和锻炼自己的创新能力。由于作者水平所限,错误和不当之处在所难免,恳请批评指正。 习题一 1、填空题。 ⑴ C语言程序由__函数__组成,其中必须有且只能有一个名为_main__的函 数。C程序的执行从___名为main的主__函数开始。 ⑵每个C语句必须以__分__号结束。 ⑶标识符只能由_英文字母_、__数字_和_下划线__三类符号构成,而且标 识符的第一个字符必须是__英文字母__或__下划线__。 ⑷关键字是指___C语言编译系统所固有的、具有专门意义的标识符___。 ⑸ C程序中,注释的内容应放在__/*_和_*/__符号之间。 2、选择题。 ⑴下面合法的C语言标识符是___ C ___。 ⑵ C语言中主函数的个数是___ A______。 ⑶以下有关注释的描述中,错误的是___ C ___。 ⑷ C程序中,main函数的位置____ D___。 3、指出并改正下面程序中的错误。 ⑴ main 应为 main() ⑵应在本程序最后加上大括号 }。 ⑶语句结束应有分号。如: int a,b; a=1;b=2; printf(%d,a+b); 、分析下列程序,写出运行结果。4. ⑴该程序是计算两个整数a和b的乘积并赋值给c,运行结果为: c=30 ⑵该程序输出一个字符串和一排星号,运行结果为: “C语言程序设计”平时作业(二) 填空题: (1)已知:int a[3] = {1, 2, 3}; 则 *(a+1)+2 的值为 ___【1】__4_。 (2)下面程序段的输出结果是___【2】___BC。 int a=1; s witch(a<=1) { case 0:printf("A"); case 1:printf("B"); default:printf("C"); } (3)以下程序运行后的输出结果是____【3】___3。 main() {int a=5,b=4,c=3,d=2; if (a>b>c) printf(“%d\n”,d); else if( (c-1 >=d) = =1 ) printf( “%d\n”,d+1); else printf( “%d\n”,d+2); } (4)下面程序段的输出结果是___【4】___ 3 int a[][3]={{1,2,3},{1,2,3},{1,2,3}}; int s=0,m,n; for(m=0;m<=2;m++) for(n=0;n<=3;n++) { if (a[m][n]= =2) break; s+= a[m][n]; } printf(“%d”,s); (5)以下程序运行后的输出结果是____【5】____24 #include 计算机程序设计基础(C语言) 单项选择练习题 说明:带*号的对非信息学院的同学不作要求。 一、基本概念 1. C语言程序是由 C 构成的。 A)一些可执行语言 B)main函数 C)函数 D)包含文件中的第一个函数2.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 3.C语言程序从 C开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数 4.C语言程序从main()函数开始执行,所以这个函数要写在_D___。 A) 程序文件的开始 B) 程序文件的最后 C) 它所调用的函数的前面 D) 程序文件的任何位置 5、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 6. 下列方法中错误的是(D)。 A.主函数可以分为两个部分:主函数说明部分和主函数体。 B.主函数可以调用任何非主函数的其它函数。 C.任何非主函数可以调用其它任何非主函数。 D.程序可以从任何非主函数开始执行。 7. 下列说法错误的是:(B) A.C程序运行步骤是编辑、编译、连接、执行。 B.C语言的变量名必须用小写,常量用大写。 C.C语言的三种基本结构是顺序、选择、循环。 D. C程序一定由函数构成的。 8.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 C语言基础测试题 一选择题(每题2分) 1. C语言程序的基本单位是( A )。 A. 函数 B. 过程 C. 语句 D. 子程序 2. 对于whil e语句,错误的说法是( C )。 A.用条件控制循环体的执行次数 B.循环体至少要执行一次 C.循环体有可能一次也不执行 D.循环体中可以包含若干条语句 3. 定义语句int a=3;则执行语句a+=a-=a*a后,变量a的值是(C)。 A.3 B.0 C.9 D.-12 4. 关于局部变量和全局变量的叙述中,错误的是(A)。 A.全局变量的重复赋值不会影响局部变量的使用。 B.主函数中定义的变量在整个程序中都是有效的 C.形式参数也是局部变量。 D.不论是局部变量还是全局变量,都以最近的一次赋值为准。 5. 已知:int a=13;那么:printf("%02d",a)结果是(A)。 A.13 B.013 C.01 D.03 6. 在main函数中调用scanf给变量a赋值的方法是错误的,原因是()。 int *p,a; p=&a; printf("input a:"); scanf("%d",*p); A. *p表示的是指针变量p的地址 B. *p表示的是变量a 的值,而不是变量a的地址 C. *p表示的是指针变量p的值 D. *p只能用来说明p是一个指针变量 7.若有以下定义,则对a数组元素地址的正确引用是()。 A.a+5 B.*a+1 C.&a+1 D.&a[0] 8. 若int k=4,a=3,b=2,c=1;则kb); A. 1,3 B. 1,4 C. 2,3 D. 2,4 二.填空题。(每空3分) 1.写一个宏MIN,这个宏输入两个参数并返回较小的一个_________。2.main函数中:for(int i=0; i<3; i++){printf("%d",i);}输出结果是_________。3.设int a=9,b=20;则printf("%d,%d",a--,--b);的输出结果是_________。 一、C语言基本知识和基本语句 (一)选择题 1.设a,b和c都是int型变量,且a=3,b=4,c=5则下面的表达式中,值为零的表达式是()。 A)‘a’&&’b’ B) a<=b C) a || b+c&&b-c D) ! ((a= ‘A’ && ch <=‘Z’) ? ( ch + 32):ch,则表达式ch的值是()字符。 A) A B) a C) Z D) z 3.若x和y都是int 型变量,x=100,y=200,且有程序段:printf (“%d”,(x,y));则输出结果是()。 A) 200 B)100 C) 100,200 D)输出格式不够,输出不确定的值4.C语言中最简单的数据类型包括()。 A)整型、实型、逻辑型 B) 整型、单精度型、双精度、字符型 C) 整型、字符型、逻辑型 D) 整型、实型、逻辑型、字符型5.C语言中,运算对象必须是整型的运算符是()。 A)% B) / C) % 和 / D) ** 6.数学关系x≥y≥z ,它对应C语言表达式是()。 A)(x>=y)&& (y>=z ) B) (x>=y) AND (y>=z ) C) (x>=y>=z) D) (x>=y) & (y>=z ) 7.以下说法中正确的是()。 A)C语言程序总是从第一个定义的函数开始执行 B) 在C语言程序中,要调用的函数必须在main()函数中定义 C) C语言程序总是从main()函数开始执行 D) C语言程序中的main()函数必须放在程序的开始部分 8.设int x=10,y=3,z;则语句printf (“%d\n”,z=(x%y,x/y));的输出结果是()。 A) 1 B) 0 C) 4 D) 3 9.C语言表达式10 != 9 的值是()。 A)true B) 非零值 C) 0 D) 1 10.合法的C语言字符常量是()。 A)’\t’B) “A” C) 65 D) A 11.若int类型数据占两个字节,则下列语句的输出为()。 int k = -1 ; printf (“%d,%u\n ”,k,k); A)- 1,- 1 B) – 1,32767 C) –1,32768 D) –1,65535 12.组成C语言程序的是()。 A)子程序 B) 过程 C) 函数 D) 主程序和子程序 第一章C语言基础知识 1.1 选择题 1. 以下不是C语言的特点的是()。 A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.no.1 C._123_ D.-_ok 3.正确的C语言标识符是()。 A._buy_2 B.2_buy C._buy D.buy 4. 请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3C.For D.2a define _123 -abc DO WORD IF Case sizeof 5.下列符号中,不属于转义字符的是()。 A.\\ B.\0xAA C.\t D.\0 6.不属于C语言关键字的是()。 A.int B.break C.while D.character 7.是C语言提供的合法关键字的是()。 A.Float B.signed C.integer D.Char 8.以下不能定义为用户标示符的是()。 A.scanf B.V oid C._3com_ D.int 9.一个C程序是由()。 A.一个主程序和若干子程序组成 B.一个或多个函数组成 C.若干过程组成 D.若干子程序组成 10. C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 11.下列说法中,错误的是()。 A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号 B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用 D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 12.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行 D.C语言程序中的main( )函数必须放在程序的开始部分13. C编译程序是()。 A.C程序的机器语言版本 B.一组机器语言指令 C.将C源程序编译成目标程序 D.由制造厂家提供的一套应用软件 第一单元C语言概述 一、选择题 1、C语言中主函数的个数为()个。 A)1 B)2 C)无穷个D)任意个 2、以下关于C语言描述错误的是()。 A)一个C程序总是从main函数开始执行 B)每个语句和数据声明的最后必须有一个分号 C)C语言的注释符是以“/*”开始并以“*/”结束的 D)一个C程序可以包含多个main函数 3、C 语言源程序文件后缀为()。 A).EXE B).OBJ C).C D).ASM 4、C语言是由()组成的。 A)子程序B)主程序与子程序C)函数D)过程 5、C语言属于()语言 A)机器语言B)汇编语言C)高级语言D)面向对象语言 第二单元C语言基础 一、选择题 1、C语言中普通整型变量int在内存中占()字节。 A)1 B)2 C)3 D)4 2、下列不是C语言基本数据类型的是()。 A)字符型B) 整型 C) 浮点型D) 结构体 3、有关自增、自减运算,以下只有()是正确的。 A) ---f B) ++78 C) a—b++ D) d++ 4、已知A=7.5,B=2,C=3.6,表达式(A>B && C>A) || (AB)的值是()。 A)0 B)10 C)1 D)5 5、若有x=1,y=2,z=3,则表达式(x A)1 B)2 C)3 D)0 6、判断char型变量ch是否为大写字母的正确表达式是()。 A) ‘A’<=ch<=‘Z’B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 7、判断整型变量digit是否为数字的正确表达式是()。 A) ‘0’<=ch<=‘9’B) (ch>=‘0’)&(ch<=‘9’) C) (ch>=‘0’)&&(ch<=‘9’) D) (‘0’<= ch)AND(‘9’>= ch) 8、一个C程序的执行是从()。 A)本程序的main函数开始,到main函数结柬 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 9、在以下标识符中,合法的是() A)if B)0xy C)_xy D)case 10、C语言中各种类型的数据其实决定了占用内存的字节数。float占()。 A)一字节B)二字节C)四字节D)八字节 11、下列各选项中,()是有效的标识符。 A)ab B)3day C)day-3 D)#abc 12、以下叙述正确的是()。。 A) 在C程序中,每行只能写一条语句 B) 若a是实型变量,C程序中不允许a=10这种赋值。 C) 在C程序中,%是只能用于整数运算的运算符 D) 在C程序中,无论是整数还是实数,没有什么区别 13、有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是()。 A)132↙B)1,3,2↙ C)a=1 b=3 c=2↙D)a=1,b=3,c=2↙ 14、设整型变量a为5,使b不为2的表达式是()。 A)b = a/2 B)b = 6-(--a) C)b=a%2 D)b=a>3?2:1 1、一个C正确答案: A]。 A)必须有一个主函数 B)可以有多个主函数 C)必须有主函数和其他函数 D)可以没有主函数 2、关于C正确答案: B]。 A)C程序的第一个函数称为主函数,程序从该函数开始运行。 B)C程序的主函数即是main函数,程序从该函数开始运行。 C)C程序可以有多个主函数,程序从第一个主函数开始运行。 D)C程序可以没有主函数,程序从第一个函数开始运行。 3、C程序中,return正确答案: D]。 A)终止程序运行 B)返回到上层循环 C)返回到外层结构 D)返回到上层函数 4、C语言程序的3正确答案: A]。 A)顺序结构,选择结构,循环结构 B)递归结构,循环结构,转移结构 C)嵌套结构,递归结构,顺序结构 D)循环结构,转移结构,顺序结构 5、以下对C正确答案: A]。 A)C程序总是从main()函数开始执行。 B)C程序可以从程序中的任何函数开始执行。 C)C程序总是从第一个定义的函数开始执行。 D)C程序中的main()函数必须放在程序的开始部分。 6、关于C程序第1正确答案: D]。A)#include stdio.h B)#include 'stdio.h' C)#include (stdio.h) D)#include 8、下列的哪个不是C正确答案: D]。 A)while B)auto C)break D)printf 9、下列的哪个不是C正确答案: C]。 A)+ B)% C)= D)- 10、下列的哪个不是C正确答案: C]。 A)>= B)<= C)= D)!= 11正确答案: D]。 A)代码如果没有缩排是错误的 B)程序总是从main函数开始执行 C)注释/*和*/不可以嵌套 D)C源文件经过编译先生成目标文件,再经过连接才能生成可执行文件 12正确答案: B]。 A)3ab B)_isw C)float D)b-b 13正确答案: B]。 A)INT B)int C)year2009 D)my_program 14、以下选项中,合法的C正确答案: D]。 A)b-a B)5ab C)int D)_5ab 15、以下选项中,三种类型都是C正确答案: C]。 C语言基础练习题 1. 从键盘上输入两个整数,求出它们的和。 2. 已知三角形的底和高,求出三角形的面积。 3. 从键盘上输入三角形的底和高,求出三角形的面积。 4. 已知三角形的三边长,求出三角形的面积。 5. 已知二元一次方程的三个系数,求方程的一个根。 6. 编程实现符号函数。当x <0 ,则sgn(x)=-1, 当x >0 ,则sgn(x)=+1, 当x =0 ,则sgn(x)=0。 7. 从键盘上输入数字星期,在屏幕上显示英文星期。 8. 从键盘输入三角形的三边长,判断出这三边能否构成三角形。 9. 从键盘输入三个整数,将这三个数按从大到小的顺序排列起来。 10. 从键盘输入二个整数,求出最大值。 11. 从键盘输入三个实数,求出最大值。 12. 从键盘输入三个整数,在一个程序中既要求出最大值,还要求出最大值。 13. 使用for循环编程求出1到100的和。 14. 使用当循环for循环编程求出1到100的和。 15. 使用直到循环编程求出1到100的和。 16. 从键盘输入10个实数,求出最大值。(画N-S流程图) 17. 从键盘输入10个整数,求出最小值。 18. 从键盘输入10个整数,求出它们的平均值。(画N-S流程图) 19. 编程在屏幕上输出具有7行的正三角形。 20. 求出8的阶乘。 21. 从键盘输入20个整数,求出不大于90所有数的和。(画N-S流程图) 22. (画N-S流程图)从键盘输入一个整数,判断这个数是否为素数。 23. 从键盘输入20个整数,求出它们的和。(画N-S流程图,使用数组) 24.从键盘输入20个整数,求出它们的平均值及比平均值大的数。(使用数组) 25. 已知五个整数3,-5,8,2,9,求出最大值。(画N-S流程图 (使用数组) 26.从键盘输入20个整数,求出它们的最小值,并求最小值所在位置。 27. 已知五个整数3,-5,8,2,9,按从大到小的顺序排列起来(画N-S流程图,使用数组) 28. 从键盘输入10个实数,按从大到小的顺序排列起来(画N-S流程图,使用数组)。 29. 某班有43名学生,某门考试结束后,请按10段统计出各分数段的人数(画流程图)。 30. 从键盘上输入两个字符串,并将它们交换后输出。 31. 已知五个字符串"China","American","Japan","France","Australia",编程将它们按从小到大的顺序排列起来。 32. 使用指针将a数组中的五个数依次输出。 1.下列四组选项中,均不是C语言关健字的选项是( A )。 A) define B) gect C) include D) while IF char scanf go type printf case pow 2.下面四个选项中,均是合法整型常量的选项是( A )。 A)160 B)-0xcdf C) -01 D)-0x48a -0xffff 01a 986,012 2e5 011 0xe 0668 0x 3.下面四个选项中,均是不合法的转义符的选项是( B )。 A) '\"' B) '\1011' C) '\011' D) '\abc' '\\' '\' '\f' '\101' 'xf' '\A' '\}' 'x1f' 4.下面不正确的字符串常量是( A )。 A)'abc' B)"12'12" C)"0" D)" " 5.以下选项中不合法的用户标识符是( A )。 A)abc.c B)file C)Main D)PRINT 6.C语言提供的合法关键字是( D )。 A) swith B) cher C) Case D)default 7.下列标识符组中,合法的用户标识符为 A A)_0123与ssiped B)del-word与signed C)list与*jer D) keep%与wind 8.在C语言中,逻辑值"真"的表示是用( C )。 A) true B) 整型值0 C)非另整型值 D) T 9若有以下定义 char s='\092'; 则该语句( b ) A)使s的值包含一个字符 B)定义不合法,s的值不确定 C)使s的值包含4个字符 D)使s的值包含3个字符 10设C语言中,int类型数据占2个字节,则float类型数据占( D )个字节。 A)1 B)2 C)8 D)4 11已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3'后,c2中的值为( A )。 A)D B)68 C)不确定的值 D)C 12逻辑运算符两侧运算对象的数据类型是 ( D )。 A) 只是0或1 B) 只能是0或非0正数 C) 只能是整型或字符型数据 D) 可以是任何合法的类型数据 13TURBO C中int类型变量所占字节数是( B )。 《C语言基础》习题及答案 一、选择题 1.设a的值为15,n的值为5,则进行a%=(n%=2)运算后,a的值为()。 A.0 B.1 C.12 D.6 2.设有类型说明 unsigned int a=65535; ,按%d格式输出a的值,其结果是(B)。 A.65536 B.-1 C.1 D.-32767 3.下列运算符中优先级最高的是(C)。 A.?: B.&& C.+ D.!= 4.以下程序输出的结果是(A)。 main( ) { int a= -1,b=4,k; k=!((++a<0)&&! (b--<0)); printf("%d%d%d\n",k,a,b); } A.104 B.103 C.013 D.004 5.下面的程序执行后,变量a的值是(B)。 #define SQR(x) x*x main() { int a=10,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf("%d\n",a); } A.10 B.1 C.9 D.0 6.设有int i;则表达式i=1,++i,++i||++i,i的值为(C)。 A.1 B.2 C.3 D.4 7.设有int i;则表达式(i=1,i=10)?i++||++i:++i的值为(A)。 A.1 B.2 C.3 D.10 8.设有int a[]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是(C)。 A.10,11,12 B.11,12,12 C.10,12,12 D.11,11,12 9.设有int i, j, k; 则表达式i=1,j=2,k=3, i&&j&&k 的值为 ( A )。 A.1 B.2 C.3 D.0 10.设有说明int s[2]={0,1},*p=s; 则下列错误的C语句是 ( A )。 A.s+=1; B.p+=1; C.*p++; D.(*P)++; C语言基础编程题标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N] 5-1求幂之和(15分) 本题要求编写程序,计算sum=2^1 + 2^2 + 2^3 + \cdots + 2^n sum=21+22+23++2n。可以调用pow函数求幂。 输入格式: 输入在一行中给出正整数n n(\le≤10)。 输出格式: 按照格式“result = 计算结果”输出。 输入样例: 输出样例: #include<> #include<> int main() { int i,n,sum=0; scanf("%d",&n); for(i=1;i<=n;i++) { sum=sum+pow(2,i); } printf("result = %d\n",sum); return 0; } 5-2近似求PI(15分) 本题要求编写程序,根据下式求\piπ的近似值,直到最后一项小于给定精度eps。 \frac{\pi}{2}=1+\frac{1!}{3}+\frac{2!}{3\times 5} + \frac{3!}{3\times 5\times 7}+ \cdots +\frac{i!}{3\times 5\times \cdots \times (2\times i+1)}+ \cdots2π=1+31!+3×52!+3×5×73!++3×5××(2×i+1)i!+ 输入格式: 输入在一行中给出精度eps,可以使用以下语句来读输入: 输出格式: 在一行内,按照以下格式输出\piπ的近似值(保留小数点后5位): 输入样例: 输出样例: #include<> #include<> int main() { double a=1,b=3,i=1,j=3; double eps,m=1,sum=0; scanf("%le", &eps); while(m>eps) { m=a/b; 1. C语言程序的执行,总是起始于()。 A) 程序中的第一条可执行语句 B) 程序中的第一个函数 C) main函数 D) 包含文件中的第一个函数 2. 在C语言系统中,假设int类型数据占2个字节,则double、long、unsigned int、char类型数据所占字节数分别多少()。 A) 8,2,4,1 B) 2,8,4,1 C) 4,2,8,1 D) 8,4,2,1 3. C语言程序的基本单位是() A) 语句B) 程序行C)函数D) 字符 4. 以下4组用户定义标识符中,全部合法的一组是() A)_main B)If C)txt D)int enclude -max REAL k_2 sin turbo 3COM _001 5. 已有定义:int x=3,y=4,z=5;则表达式!(x+y)+z-1&&y+z/2的值是()。 A、0 B、1 C、2 D、-1 6. 设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d) 后n的值()。 A、1 B、2 C、3 D、4 7. 有如下程序 main() { int y=3,x=3,z=1; printf("%d %d\n",(++x, y++),z+2); } 运行该程序的输出结果是() A) 3 4 B) 4 2 C) 4 3 D) 3 3 8. 下列程序执行后的输出结果是(小数点后只写一位)() A)6 6 6.0 6.0 B)6 6 6.7 6.7 C)6 6 6.0 6.7 D)6 6 6.7 6.0 main() { double d ;flaot f;long l;int i; i=f=l=d=20/3; printf(”%d %ld %f %f\n”,i,l,f,d); 9. 已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j 的值为2、k的值为3,以下选项中正确的输入语句是() A)scanf("%2d%2d%2d",&i,&j,&k); B)scanf(""%d %d %d",&i,&j,&k); C)scanf("%d,%d,%d",&i,&j,&k); D)scanf("i=%d,j=%d,k=%d",&i,&j,&k); 10. 有如下程序 main() {int a=2,b=-1,c=2; if(aC语言基础编程题
C语言基础知识_测试题
C语言习题集(基础篇)
C语言基本练习题
C语言基础题及参考答案
C语言编程基础考试试题
C语言基础练习100题(含标准答案)
C语言编程基础习题答案
c语言基础题
C语言-基本选择题及答案解析
C语言基础测试题
(完整版)C语言基础知识综合练习题
C语言基础练习题含答案
C语言基础题
C语言基础题及答案
C语言基础练习题
c语言程序基础练习题道附答案
【专业课】《c语言基础》习题及答案
C语言基础编程题
C语言基础试题