当前位置:文档之家› 程序设计习题及答案

程序设计习题及答案

}
(二)项目三C语言程序控制结构
选择题:
1.下列for循环的循环次数是D。
int i=0,j;
for(j=10;i=j=10;i++,j--)printf(”ok”);
A.0次B.1次C.10次D.无限次
2.下列for循环的循环次数是B。
int i=0,j=0;
for(;!j&&i<=5;i++)j++;
main()
{ int i,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)
putchar(‘#’);
}
阅读题:(写出程序运行结果)
1.#include<stdio.h>
main()
{int y=10;
do{y--;
}while(--y);
printf(“%d\n”,y--);
}
2.求和:从1加到100
#include <stdio.h>
main()
{
int n,s;
for(s=0,n=1;n<=100;n++)
s=s+n;
printf("s=%d\n",s);
}
3.如果0<n<17,使之能正确地计算n!
#include <stdio.h>
main()
{
int n,i;
long s;
8.下面程序段的运行结果是C。
int n=0;
while(n++<=2);printf(“%d”,n);
A.2B.3C.4D.有语法错误
9.若i为整型变量,则以下循环执行次数是B。
for(i=2;i==0;)printf(“%d”,i--);
A.无限次B.0次C.1次D.2次
10.执行语句for(i=1;i++<4;);后变量i的值是C。和第八题相似
A.3B.4C.5D.不定
填空题:
1、若输入字符串:abcdef<回车>,则以下while循环体将执行____0____次。
While((ch=getchar())= =’d’) printf(“**”);
2、下面程序段的运行结果是___a=-5______。
i=1;a=0;s=1;
do{a=a+s*i;s=-s;i++;}while(i<=10);
main()
{int r,m,n;
scanf(“%d%d”,&m,&n);
if(m<n)___{r=m;m=n;n=r}___;
r=m%n;
while(r){m=n;n=r;r=__m%n__;}
printf(“%d\n”,n);
}
6.执行以下程序后,输出“#”的个数是___6____。
#include <stdio.h>
#include <stdio.h>
main()
{
int n,i,s,fact;
printf("请输入整数n:");
scanf("%d",&n);
if(n>0&&n<8)
{
for(i=1,s=0,fact=1;i<=n;i++)
{
fact=fact*i; /*求n!*/
s=s+fact;/*求s=1!+2!+3!+……+n!*/
5.下列四组选项中,均是合法转义字符的选项是A。
A.’\”’’\\’’\n’
B.’\’’\017’’\”’
C.’\018’’\f’’xab’
D.’\\0’’\101’’xlf’
6.定义三个变量a、b、c,并分别赋初值为5。能实现该功能的语句是C。
A.int a=b=c=5;B.int a,b,c=5;
scanf("%d",&n);
for( ; a<3; a++)
switch(a++)
{ case 1:b--;break;
case 2:b++;
case 3:b+=3;
}
printf(“%d\n”,b);
}
答:﹣1
4.#include<stdio.h>
main()
{ints,i;
for(s=0,i=1 ; i<3 ; i++,s+=i) ;
#include <stdio.h>
main()
{ int i=0;
while(i<10)
{ if(i<1) continue;
if(i==5) break;
i++;
}
printf(“%d”,i);
}
5.下面程序的功能是用“辗转相除法”求两个正整数的最大公约数。请填空。
#include<stdio.h>
}
答:0
2. #include <stdio.h>
main()
{intx=15;
while(x>10&&x<50)
{x++;
if(x/3){x++;break;}
elsecontinue;
}
printf(“%d\n”,x);
}
答:17
3.#include<stdio.h>
main()
{inta=1,b=0;
main()
{ int x=97; char y=’b’;
printf(“%c,%d”, x, y);
}
答:a,98
2. #include <stdio.h>
main()
{ int x=6;
x+=x-=x*x;
printf(“x=%d\n”,x);
}
答:x=﹣60
3. #include <stdio.h>
2011-2012年度第一学期“C语言程序设计”期末考试复习提纲
一、考试题型
序号
题型
每题得分
题量
总分

选择题
2
15
30

填空
2
5
10

程序阅读
4
5
20

编程题
10
1
10
15
2
30
二、
(一)项目二数据类型、运算符和表达式
选择题:
1.不合法的C语言整型常量是A。
A.–012B.0x35C.123LD.8E2
6.若int a=5;则执行下列语句后打印的结果为A。
do
{printf (“%2d\n”, a--);
} while (!a);
A.5B.不打印任何结果C.4D.陷入死循环
7.语句for(i=0,j=0;i<=100;i++)j=j+i;运行后j的值为D。
A.500B.100C.5000D.5050
2.不合法的C语言实型常量是A。
A.E3B. .123C.–6.2E4D.5.0
3.不合法的C字符常量是C。
A.’2’B.’\101’C.’AB’D.’\n’
4.下列四组选项中,均是不合法的用户标识符的选项是B。
A.WP_0do
B.b-agotoint
C.floatla0_A
D.-123abcTEMP
A.5次B.1次C.无限D.6次
3.语句for(i=0,j=0;i<=100;i++)j=j+i;运行后j的值为D。
A.500B.100C.5000D.5050
4、有以下程序:
#include <stdio.h>
main()
{char c;
while((c=getchar())!='?') putchar(--c); }
A.4B.16C.32D.52
9.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为D。
A.floatB.charC.intD.double
10.设以下变量均为int类型,则值不等于7的表达式是C。
A.(x=y=6,x+y,x+1)B.(x=y=6,x+y,y+1)
#include <stdio.h>
#define PI 3.14
main()
{
float r,n,S,C;
printf("请输入扇形的半径r和角度n:");
scanf("%f%f",&r,&n);
S=(n*PI*r*r)/360;
C=(n*PI*r)/180+2*r;
printf("扇形的面积S=%.2f,周长C=%.2f\n",S,C);
printf(“a=%d”,a);
3.下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束
循环。请填空。
int n=0,c;
c=getchar();
while(c!=’\n’)
{
if(c>=’0’&&ቤተ መጻሕፍቲ ባይዱ<=’9’)n++;
相关主题