当前位置:文档之家› c语言试题

c语言试题

一、填空题
第1题
以下do-while语句中循环体的执行次数是【3】.
a=10;
b=0;
do { b+=2; a-=2+b; } while (a>=0);
第2题
设i,j,k均为int型变量,则执行完下面的for循环后,k的值为【10】.
for(i=0,j=10;i<=j;i++,j--)
k=i+j;
第3题
定义int a[2][3];表示数组a中的元素个数是【6】个.
第4题
函数的【递归】调用是一个函数直接或间接地调用它自身.
第5题
设a=3,b=4,c=4,则表达式a+b>c&&b==c&&a||b+c&&b==c的值为【1】.
第6题
int x=4,y=z=2;z=x==(y=z); 则z的值为【4】.
第7题
int x=2,y=3,z=4; 则表达式x+y&&z的值为【1】.
第8题
若有以下定义,则计算表达式y+=y-=m*=y后的y值是【—16】.
int m=5,y=2;
二、单项选择
第1题
为表示关系x≥y≥z,应使用C语言表达式
A:(x>=y)&&(y>=z)
B:(x>=y) AND (y>=z)
C:(x>=y>=z)
D:(x>=z)&(y>=z)
第2题
C语言函数内定义的局部变量的隐含存储类别是
A:static
B:auto
C:register
D:extern
第3题
若有说明 int a[3][4];则对a数组元素的正确引用是()。
A:a[2][4]
B:a[1,3]
C:a[1+1][0]
D:a(2)(1)
第4题
从循环体内某一层跳出,继续执行循环外的语句是
A:break语句
B:return语句
C:continue语句
D:空语句
第5题
下列( )表达式的值为真,其中a=5;b=8;c=10;d=0
A:a*2>8+2
B:a&&d
C:(a*2-c)||d
D:a-b第6题
以下程序的执行结果是________.
main()
{ int w = 1, x = 2, y = 3, z = 4;
w =( w < x ) ? x : w;
w =( w < y ) ? y : w;
w =( w < z ) ? z : w;
printf( "%d " , w );}
A:1
B:2
C:3
D:4
第7题
若变量已正确定义,执行语句scanf("%d,%d,%d ",&k1,&k2,&k3);时,___是正确的输入
A:2030,40
B:20 30 40
C:20, 30 40
D:20,30,40
第8题
在C语言中,一维数组的定义方式为:类型说明符数组名()。
A:[常量表达式]
B:[整型表达式]
C:[整型常量]或[整型表达式]
D:[整型常量]
第9题
以下不能正确进行字符串赋初值的语句是()。
A:char str[5]="good!";
B:char str[]="good!";
C:char *str="good!";
D:char str[5]={'g','o','o','d',0};
第10题
C语言中,逻辑"真"等价于
A:大于零的数
B:非零的数
C:大于零的整数
D:非零的整数
三、程序(程序填空、程序设计)
第1题
功能:统计一个字符串中的字母、数字、空格和其它字符的个数。
#include "stdio.h"
main ()
{
char s1[80];int a[4]={0};
int k;
/***********SPACE***********/
void fun(char s[],int b[]);
gets(s1);
/***********SPACE***********/
fun(s1,a);
puts(s1);
for(k=0;k<4;k++)
printf("%4d",a[k]);
}
void fun(char s[],int b[])
{
int i;
for (i=0;s[i]!='\0';i++)
if ('a'<=s[i]&&s[i]<='z'||'A'<=s[i]&&s[i]<='Z')
b[0]++;
/***********SPACE***********/
else if ('0'<=s[i]&&s[i]<='9')
b[1]++;
/***********SPACE***********/
else if (s[i]==' ')
b[2]++;
else
b[3]++;
}
第2题
功能:输入三个整数x,y,z,请把这三个数由小到大输出。
#include
void main()
{
int x,y,z,t;
scan

f("%d%d%d",&x,&y,&z);
if (x>y)
{t=x;x=y;y=t;} /*交换x,y的值*/
if(x>z)
{t=z;z=x;x=t;}/*交换x,z的值*/
if(y>z)
{t=y;y=z;z=t;}/*交换z,y的值*/
printf("small to big: %d %d %d\n",x,y,z);
}
第3题
功能:输出100到1000之间的各位数字之和能被15整除的所有数,
输出时每10个一行。
#include
void main()
{
int m,n,k,i=0;
for(m=100;m<=1000;m++)
{
【k=0】;
n=m;
do
{
k=k+n%10;
n=n/10;
}
【while(n!=0)】;
if(k%15==0)
{
printf("%5d",m);i++;
if(i%10==0) printf("\n");
}


}
}
第4题
学生变量定义如下:
struct student
{
char number[6];
char name[6];
int score[3];
} stu[2];
功能:输入学生成绩并显示。
# include
struct student
{
char number[6];
char name[6];
int score[3];
} stu[2];
void output(struct student stu[2]);
void main()
{
int i, j;
/***********SPACE***********/
for(i=0; i<2; ________________)
{
printf("请输入学生%d的成绩:\n", i+1);
printf("学号:");
/***********SPACE***********/
scanf("%s", ________________.number);
printf("姓名:");
scanf("%s", stu[i].name);
for(j=0; j<3; j++)
{
printf("成绩 %d. ", j+1);
/***********SPACE***********/
scanf("%d", ________________.score[j]);
}
printf("\n");
}
output(stu);
}
void output(struct student stu[2])
{
int i, j;
printf("学号 姓名 成绩1 成绩2 成绩3\n");
for(i=0; i<2; i++)
{
/***********SPACE***********/
________________("%-6s%-6s", stu[i].number, stu[i].name);
for(j=0; j<3; j++)
printf("%-8d", stu[i].score[j]);
printf("\n");
}
}
答案:
【1】 i++ 或 ++i 或 i=i+1
【2】 &stu[i]
【3】 &stu[i]
【4】 printf
第5题
功能:5个学生选修4门课程,计算个人与各科平均成绩及全班平均成绩,并在屏幕上显
示出来。
#define M 5 /*定义符号常量 人数为5*/
#define N 4 /*定义符号常量 课程为4*/
#include "stdio.h"
main()
{
int i,j;
void aver(float sco[M+1][N+1]);
static float score[M+1][N+1]={{78,85,83,65}, {88,91,89,93}, {72,65,54,75},{86,88,75,60},{69,60,50,72}};
aver(score);
clrscr();
printf("学生编号 课程1 课程2 课程3 课程4 个人平均\n");
for(i=0;i{
printf("学生%d\t",i+1);
/***********SPACE***********/
for(j=0;j<________________;j++)
printf("%6.1f\t",score[i][j]);
printf("\n");
}
for(j=0;j<8*(N+2);j++)
printf("-");
printf("\n课程平均");
for(j=0;jprintf("%6.1f\t",score[i][j]);
printf("\n");
getch();
}
void aver(float sco[][N+1])
{
int i,j;
/***********SPACE***********/
for(i=0;i<________________;i++)
{
for(j=0;j{
sco[i][N] += sco[i][j];
sco[M][j] += sco[i][j];
sco[M][N] += sco[i][j];
}
/***********SPACE***********/
sco[i][N] ________________ N;
}
for(j=0;j/***********SPACE***********/
sco[M][________________] /= M;
sco[M][N]=sco[M][N]/M/N;
}
答案:
【1】 N+1 或 1+N 或 5
【2】 M 或 5
【3】 /=
【4】 j
第6题
功能:计算平均成绩并统计90分以

上人数。
#include "stdio.h"

void main(){
int sum=0;
int score[10];
int count=0;
int i=0;
for(i=0;i<10;i++)
{
printf("请输入第%d个人的成绩",i+1);
scanf("%d",&scors[i]);
sum+=score[i];
if(score[i]>90)
{
count++;
}
}
printf("平均分%f,有%d个90分以上。",(sum*1.0)/10,count);
}
第7题
功能:写一个函数,求一个字符串的长度,在main函数中输入字
符串,并输出其长度。
#include
#include
void main()
{
int f(char str[]);
int l;
char str[10];
gets(str);
l=f(str);
printf("%d",l);
}
int f(char str[])
{
int z;
z=strlen(str);
return(z);
}
第8题
找出x,y,z三个数中的最大、最小值
#include
int main()
{
int i,n,max,min;
for(i=0;i<3;i++)
{
scanf("%d",&n);
if(i==0) //初始化max,min
max=min=n;
if(maxmax=n;
if(min>n) //最小值
min=n;
}
printf("max number %d min number %d\n",max,min);//输出最大最小值
}
第9题
功能:删除一个字符串中的所有数字字符。
#include
void delnum(char *s)
{
int i,j;
/***********SPACE***********/
for(i=0,j=0; 【 s[i]!= 】'\0' ;i++)
/***********SPACE***********/
if(s[i]<'0'【 || 】 s[i]>'9')
{
/***********SPACE***********/
【 s[j]=s[i] 】;
j++;
}
s[j]='\0';
}
main ()
{
char *item;
printf("\n input a string:\n");
item="";
gets(item);
/***********SPACE***********/
【delnum(item)】;
printf("\n%s",item);
}
第10题
功能:从键盘为一维整型数组输入10个整数找出其中最小的数并输出。
#include "stdio.h"
int fun(int x[],int n)
{

/**********Program**********/
int min;
int i;
min=x[0];
for(i=0;i{
if min>x[i];
min=x[i];
}
return min;
/********** End **********/
}
main()
{
int a[10],i,min;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("%3d",a[i]);
printf("\n");
min=fun(a,10);
printf("%d\n",min);
}
第11题
功能:从键盘输入一个三位数,判断是否"水仙花数"。
说明:所谓"水仙花数"是指一3位数,其各位数字立方和
等于该数本身。
int fun(int n)
{
int a,b,c;
a=n%10;
b=n/10%10;
c=n/100;
if(a*a*a+b*b*b+c*c*c==n)
return 1;
else return 0;
}
第12题
功能:判断m是否为素数。
#include
#include
void main()
{ int i;
int fun(int);
for(i=2;i<=200;i++)
if(fun(i)) printf("%4d",i);
getch();
}
int fun(int n)
{int i,t;
t=sqrt(n);
for(i=2;i<=t;i++)
if(n%i==0) return 0;
return 1;
}
第13题
功能:求1到w之间的奇数之和。(w是大于等于100小于等
于1000的整数)
int i;
long int sum=0;
for(i=1;i<=w;i++)
if(i%2!=0)sum=sum+i;
return sum;
第14题
功能:编写函数fun计算下列分段函数的值:
x^2+x+6 x<0且x≠-3
f(x)= x^2-5x+6 0≤x<10且x≠2及x≠3
x^2-x-1 其它
fun(double x)
{
if(x<0&&x!=-3)
{
return x*x+x+6;
}
else if(x<10&&x!=2&&x!=3)
{
return x*x-5*x+6;
}
else return x*x-x-1;
}
第15题
功能

:求1到100之间的偶数之积。
void sum()
{
int i,sum=0;
for(i=1;i<=100;i++)
{
if(i%2==0)
sum=sum+i;
}
printf("sum=%d",sum);
}
main()
{
sum();
}
第16题
功能:求一组数中大于平均值的数的个数。
例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函
数值为3。
int al=0;
for(int i=0;ial+=a[i];
int av=al/N;
int num=0;
for(int j=0;jif(av
//al最后为个数
第17题
功能:输入m的值,计算如下公式的值:y=1/2+1/4+
1/6+...+1/2m 。
例如:若m=9,则应输出:1.414484
#include
double fun(int m)
{
int i;
double d;
for(i=1,d=0; i<=m; i++)
d+= 0.5/i;
return d;
}
int main()
{
printf("m=9 result=%lf\n", fun(9));
return 0;
}
18、功能:编写函数fun求1!+2!+3!+ …… +n!的和
int i;
double sum=0;
double jc=1;
for(i=1;i<=n;i++)
{
jc=jc*i;
sum=sum+jc;
}
if(n==0)sum=1;
return sum;


一、1、3 2、10 3、6 4、递归 5、1 6、4 7、1 8、-16
二、ABCAD DDAAB

相关主题
文本预览
相关文档 最新文档