当前位置:文档之家› 全国大学生信息技术应用水平大赛C语言复赛试题及答案1

全国大学生信息技术应用水平大赛C语言复赛试题及答案1

全国大学生信息技术应用水平大赛C语言复赛试题及答案1
全国大学生信息技术应用水平大赛C语言复赛试题及答案1

第六届全国信息技术应用水平大赛复赛试题

请仔细阅读并严格遵守以下要求:

请创建以“准考证号_用户名”命名的文件夹(形式如:433034683_xxxx),将考试结果严格按试题上的要求进行命名并直接保存在该文件夹下。

注意:文件夹的保存路径请听从监考老师的安排。请不要在该文件夹下创建任何子文件夹,所有考试结果直接保存即可。

答卷完毕后,请将该文件夹用Winrar压缩工具打包,再通过《复赛考试结果上传系统》将压缩包上传到指定服务器,并在原机器上保留备份。

注意:压缩打包时,请务必选中文件夹(如前面创建的“433034683_xxxx”文件夹)进行压缩,而不是选中文件夹下的考试结果进行压缩。

请务必按照试卷要求提交指定的文件,不得包含非题目要求的过程文件和临时文件,不得包含本试题文件和试题素材。

注意:凡违反上述规定的考生,其成绩一律按零分处理。

题目命名要求:请将编写好的源程序以题号命名,例如第1题的源程序保存为“1.C”。

重要提示:由于时间有限,请考生首先保证编写的程序在Wintc环境下可以编译通过并执行,在此基础上完成考题要求的全部功能,以免因编译不通过影响考生的考试。

--------------------------------------------------------------------------------------------

1. 编程解决如下问题(50分)。

有一个数学等式:AB*CD=BA*DC,式中的一个字母代表一位数字,试找出所有符合上述要求的乘积式并打印输出。

2. 编程解决如下问题(50分)。

请在整数n=742683613984中删除8个数字,使得余下的数字按原次序组成的新数最小。要求如下: (1)整数n和删除数字的个数“8”在源程序中完成赋值,程序直接输出运行结果;

(2)程序结果输出先后被删除的数字(之间以逗号分隔)和删除后所得的最小数。

(提示:整数n可以以字符数组的方式定义、赋值和处理)

#include"stdio.h"

#define N 12

void main()

{

int i,n1,n2,n3,n4,min1,min2,min3,min4,a[12]={7,4,2,6,8,3,6,1,3,9,8,4}; min1=a[0];

n1=0;

for(i=0;i

if(min1>a[i+1]){

min1=a[i+1];

n1=i+1;}}

min2=a[n1+1];

n2=n1+1;

for(i=n1+1;i

if(min2>a[i+1]){

min2=a[i+1];

n2=i+1;}}

min3=a[n2+1];

n3=n2+1;

for(i=n2+1;i

if(min3>a[i+1]){

min3=a[i+1];

n3=i+1;}}

min4=a[n3+1];

n4=n3+1;

if(min4>a[i+1]){

min4=a[i+1];

n4=i+1;}}

for(i=0;i

if(i!=n1&&i!=n2&&i!=n3&&i!=n4)

printf("%d",a[i]);}

printf("\n");

printf("%d%d%d%d",min1,min2,min3,min4);

getch();

}

3. 附加题:编程解决如下问题(50分)。

(1)已知平面上三个点:(7,1)、(4,6)、(5,8),判断这三点组成的三角形是何种三角形(锐角,直角,钝角)(10分);

#include"stdio.h"

#include"math.h"

void main()

{

int x[3]={7,4,5},y[3]={1,6,8},i,k;

double A=0,q=0,s[3],max,w=1,cos;

s[0]=sqrt((x[0]-x[1])*(x[0]-x[1])+(y[0]-y[1])*(y[0]-y[1]));

s[1]=sqrt((x[1]-x[2])*(x[1]-x[2])+(y[1]-y[2])*(y[1]-y[2]));

s[2]=sqrt((x[0]-x[2])*(x[0]-x[2])+(y[0]-y[2])*(y[0]-y[2]));

if(s[0]<=s[1]){

max=s[1];

k=1;}

else{

max=s[0];

k=0;}

max=s[2];

k=2;}

for(i=0;i<3;i++)

if(i!=k){

A=A+s[i]*s[i];

q=q+s[i];

w=2*w*s[i];}

cos=(A-max*max)/w;

if(q<=max){

printf("错误!");getch();}

if(cos==0){

printf("直角!");getch();}

else

if(cos>0){

printf("锐角!");getch();}

else{

printf("钝角!");getch();}

}

(2)对(1)问中的三角形,给出它的外接圆半径(20分);

#include

#include

void main()

{

int a[3][2]={{7,1},{4,6},{5,8}};

float l[3],r,m,n;

l[0]=sqrt(pow((a[0][0]-a[1][0]),2)+pow((a[0][1]-a[1][1]),2)) ; l[1]=sqrt(pow((a[1][0]-a[2][0]),2)+pow((a[1][1]-a[2][1]),2)) ; l[2]=sqrt(pow((a[0][0]-a[2][0]),2)+pow((a[0][1]-a[2][1]),2)) ;

n=sqrt(1-m);

r=l[0]/(2*n);

printf("%f\n",r);

getch();

}

(3)已知平面上6个点的坐标为:(7,1)、(4,6)、(5,8)、(6,2)、(3,9)、(2,7),试求覆盖这6个点的覆盖圆最小半径(20分)。

(要求:点坐标数据在程序初始化中赋值完成,程序运行后直接输出结果,不进行数据输入;点坐标数据和题目要求完全一致,否则导致的结果不正确视为程序编写错误。)

1. 编程解决如下问题(50分)。

有一个数学等式:ABCD*E= DCBA,式中的一个字母代表一位数字,试找出所有符合上述要求的乘积式并打印输出。

2. 编程解决如下问题(50分)。

请在整数n=92081346718538中删除10个数字,使得余下的数字按原次序组成的新数最大。要求如下:

(1)整数n和删除数字的个数“10”在源程序中完成赋值,程序直接输出运行结果;

(2)程序结果输出先后被删除的数字(之间以逗号分隔)和删除后所得的最大数。

#include"stdio.h"

#define N 14

void main()

{

int i,n1,n2,n3,n4,max1,max2,max3,max4,a[14]={9,2,0,8,1,3,4,6,7,1,8,5,3,8};

max1=a[0];

n1=0;

for(i=0;i

if(max1

max1=a[i+1];

n1=i+1;}}

max2=a[n1+1];

n2=n1+1;

for(i=n1+1;i

if(max2

max2=a[i+1];

n2=i+1;}}

max3=a[n2+1];

n3=n2+1;

for(i=n2+1;i

if(max3

max3=a[i+1];

n3=i+1;}}

max4=a[n3+1];

n4=n3+1;

for(i=n3+1;i

if(max4

max4=a[i+1];

n4=i+1;}}

for(i=0;i

if(i!=n1&&i!=n2&&i!=n3&&i!=n4)

printf("%d",a[i]);}

printf("\n");

printf("%d%d%d%d",max1,max2,max3,max4); getch();

}

(提示:整数n可以以字符数组的方式定义、赋值和处理)

3. 附加题:编程解决如下问题(50分)。

在小于10的素数中有3、5、7组成的等差数列,在小于30的素数中有11、17、23、29组成的等差数列。试找出区间[100,1000]内的素数构成的最大等差数列(即等差数列包含的素数个数最多)并打印输出。

1.求某正整数插入乘号后乘积的最大值。(50分)

(1)描述:编程实现在一个9位数的正整数n中插入4个乘号,使分得的5个整数的乘积最大;(2)输入:正整数n;

(3)输出:被分得的5个整数、得到的最大乘积值。

例如:

Please input n:734019862 (回车)

屏幕输出:73*401*9*8*62=130674672

#include"stdio.h"

#define n 9

void main()

{

int i,k,x,j,s1,s2,s3,s4,x1,x2,x3,x4;

int m1[3],m2[3],m3[3],m4[3],a[n];

long n=734019862,k=100000000;

for(i=0;i<9;i++){

a[i]=n/k;

n=n-k*a[i];

k=k/10;}

if(a[0]>a[4]&&a[5]!=0){

for(i=0,x=0;i<=4;i++,x++)

m1[x]=a[i];

for(i=5,j=0;i<9;i++,j++)

else{

for(i=0,x=0;i<=3;i++,x++)

m1[x]=a[i];

for(i=4,j=0;i<9;i++,j++)

m3[j]=a[i];}

if(x!=4)

if(m1[0]>m1[x/2]&&m1[x/2]!=0)

for(i=0,x1=0;i<=x/2;i++,x1++)

m1[x1]=m1[i];

for(i=x/2+1,x2=0;i<5;i++,x2++)

m2[x2]=a[i];}

else{

for(i=x/2-1,x1=0;i<=3;i++,x1++)

m1[x1]=a[i];

for(i=x/2,x2=0;i<=4;i++,x2++)

m2[x2]=a[i];}

if(m3[0]>m3[j/2]&&m3[j/2+1]!=0)

for(i=0,x3=0;i

m3[x3]=m3[i];

for(i=j/2,x4=0;i

m4[x4]=a[i];}

else{

for(i=j/2-1,x3=0;i<=j/2;i++,x3++)

m3[x3]=a[i];

for(i=j/2,x4=0;i<=4;i++,x4++)

m4[x4]=a[i];}

for(i=0;i<=x1;i++)

for(i=0;i<=x2;i++)

s2=s2*10+m2[i];

for(i=0;i<=x3;i++)

s3=s3*10+m3[i];

for(i=0;i<=x4;i++)

s4=s4*10+m4[i];

printf("%d*%d*%d*%d*%d%=ld%",s1,s2,s3,s4,s1*s2*s3*s4);

}

2.求西瓜均分问题。(70分)

描述:地面上有12个西瓜,它们的重量(单位为“两”,为计算方便已全部转化为整数,如98即为9斤8两)如下:

98,93,57,64,50,82,18,34,69,56,16,61

(1)设计程序:实现对以上12个瓜“二堆均分”(每堆6个,两堆重量相等),要求打印输出均分的各种可能方案;

#include"stdio.h"

void main()

{

int i,j,k,l,m,n,a[12]={98,93,57,64,50,82,18,34,69,56,16,61};

long s;

for(i=0;i<12;i++)

for(j=i+1;j<12;j++)

for(k=j+1;k<12;k++)

for(l=k+1;l<12;l++)

for(m=l+1;m<12;m++)

for(n=m+1;n<12;n++)

{

s=a[i]+a[j]+a[k]+a[l]+a[m]+a[n];

if(s==349)

printf("%d %d %d %d %d %d\n",a[i],a[j],a[k],a[l],a[m],a[n]);

}

}

(a)输入:数据输入由程序完成,执行程序后不需要任何数据输入;

(b)输出:程序执行后输出以下格式,X分别代表一个西瓜重量的数字,如下:

No1:X X X X X X,X X X X X X

No2:X X X X X X,X X X X X X

……

注:均分的两堆如果只有摆放顺序不一样,算一种输出结果。

(30分)

(2)设计程序,实现对以上12个西瓜,拟实现“三堆均分”(每堆4个,三堆重量相等)。考虑到上述西瓜总重量不能为3所整除,这里另有几个西瓜,重量分别为:70,71,72,73,74,75可供挑选,从12个西瓜中替换掉其中一个,是否可以实现“三堆均分”?如果可以,设计程序实现,要求打印输出均分的各种可能方案;

(a)输入:数据输入由程序完成,执行程序后不需要任何数据输入;

(b)输出:输出结果为以下格式,X分别代表一个西瓜重量的数字,A、B、C、D、E分别代表替换原来西瓜的新重量数字70、71、72、73、74、75,如下:

No1(A replaces X):X X X X,X X X X,X X X X

No2(B replaces X):X X X X,X X X X,X X X X

……注:均分的三堆如果只有摆放顺序不一样,算一种输出结果。

(40分)

1、编写一个程序,让它有以下功能:从键盘上输入一个五位数,对此整数中的五个数值进行从大到小排序,形成一个新的五位数,输出这个整数。(15分)

#include"stdio.h"

{

int i,j,a[5],b[5],y=0;

long x,k=10000;

printf("请输入一个五位数:"); scanf("%ld",&x);

for(i=0;i<5;i++){

a[i]=x/k;

x=x-a[i]*k;

if(x>10)

k=k/10;

else

a[++i]=x%10;

}

for(j=9;j>=0;j--){

for(i=0;i<5;i++)

if(j==a[i])

b[y++]=j;

}}

for(i=0;i<5;i++){

printf("%d",b[i]);}

getch();

}

2、输入年、月、日,输出该日期是该年的第几天。(25分)

#include"stdio.h"

void main()

{

int i,tian,x,y,z,yue=0,a[13];

a[0]=0;

a[1]=a[3]=a[5]=a[7]=a[8]=a[10]=a[12]=31;

a[4]=a[6]=a[9]=a[11]=30;

printf("请输入年,月,日:");

scanf("%d,%d,%d",&x,&y,&z);

if(x%400==0||x%4==0&&x%100!=0)

a[2]=29;

else

a[2]=28;

for(i=0;i

yue=yue+a[i];

tian=yue+z;

printf("%d年%d月%d日是该年的第%d天!",x,y,z,tian);

getch();

}

3、利用数组实现数据的存储。将学生的学号和成绩存储在数组中,利用循环计算出数组中存储学生的平均成绩,找出高于平均分的学生信息并输出。(20分)

4、输入五个国家的名字,按字母顺序(即按ASCII码从小到大的顺序)排列输出。(20分)

5、用指针实现:任意输入20个数,将它们按照从大到小的顺序输出。(20分)

附加题

6、编写一个简单的通讯录管理系统。通讯录包括:姓名、通讯地址、邮编、联系电话,现编写一个通讯录管理系统,可以对通讯录进行输入、显示、查找,通讯录保存到一个文件中。(50分)

(提示:可能用到以下库函数:

malloc(),功能:分配size字节的存储区,

用法:(类型*)malloc(size *sizeof(你要定义的类型));包含于库中

feof(),功能:检测文件是否结束

用法:int feof(fp)

FILE *fp;包含于库中。)

1、编程完成数据加密。数据是五位的整数,加密规则为:每位数字都加上6,然后用和除以8的余数代替该数字,再将第一位和第五位交换,第二位和第四位交换。(15分)

#include"stdio.h"

void main()

{

int i,t,a[5];

long n,k=10000;

printf("请输入一个五位数:");

scanf("%ld",&n);

for(i=0;i<5;i++)

{

a[i]=n/k;

n=n-a[i]*k;

if(n>10)

k=k/10;

else

a[++i]=n%10;

}

for(i=0;i<5;i++)

printf("%d",a[i]);

printf("\n");

for(i=0;i<5;i++)

a[i]=(a[i]+6)%8;

t=a[0];

a[0]=a[4];

a[4]=t;

t=a[1];

a[1]=a[3];

a[3]=t;

for(i=0;i<5;i++)

printf("%d",a[i]);

getch();

}

2、请猜数字,该数字由系统随即产生。要求:用户最多有10次猜测的机会,如果在10次内猜对数字,则程序显示祝贺信息,如果连续10次都没有猜中数字,则游戏自动退出。(25分)

(提示:可能用到以下库函数:

randomize();用系统的时间作为随机种子;包含于stdlib.h库中

random(100):随机产生0-99之间的一个随机数;包含于stdlib.h库中

toupper():将字符c转换为大写英文字母,包含于ctype.h库中)

3、有一个3×4的矩阵,要求编写程序找出每一行中最大值并与第一列交换。(20分)

#include"stdio.h"

void main()

{

int i,j,k,x,y,t,max,a[3][4]={39,25,52,44,31,43,15,23,66,44,22,11};

for(i=0;i<3;i++){

for(j=0;j<4;j++){

if(max<=a[i][j]){

max=a[i][j];

x=i;

y=j;}

}

a[x][y]=a[i][0];

t=a[i][0];

a[i][0]=max;

max=t;

for(k=0;k<4;k++)

printf("%4d",a[i][k]);

printf("\n");

}

}

4、输入五个字符串,要求按照字母顺序(即按ASCII码从小到大的顺序)输出这五个字符串。(20分)

5、用指针实现:把一个整数插入到由小到大排列的数列中,插入后仍然保持由小到大的顺序。(20分)

附加题

6、编写一个简单的通讯录管理系统。通讯录包括:姓名、通讯地址、邮编、联系电话,现编写一个通讯录管理系统,可以对通讯录进行输入、显示、查找等,通讯录保存到一个文件中。(50分)

(提示:可能用到以下库函数:

malloc(),功能:分配size字节的存储区,

用法:(类型*)malloc(size*sizeof(你要定义的类型));包含于库中

feof(),功能:检测文件是否结束

用法:int feof(fp)

FILE *fp;包含于库中。)

1、编程解决如下数学问题:有12升水,怎样利用一个8升和一个5升的容器将水分为两个6升?要

求以如下格式打印出分水步骤。(20分)

a12 b8 c5

12 0 0

* * * (“*”表示当前状态下每个容器的盛水量)

......

0 6 6

2、编程实现:有二维数组a[3][3]={{5.4,3.2,8},{6,4,3.3},{7,3,1.3}},将数组a的每

一行元素均除以该行上的主对角元素(第1行同除以a[0][0],第2行同除以a[1][1],...),按行输出新数组。(20分)

#include"stdio.h"

void main()

{

int i,j;

float a[3][3]={{5.4,3.2,8},{6,4,3.3},{7,3,1.3}},b[3][3];

for(i=0;i<3;i++)

for(j=0;j<3;j++)

b[i][j]=a[i][j]/a[i][i];

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

{

printf("%10f",b[i][j]);}

printf("\n");}

}

3、编程:设x取值为区间[1,20]的整数,求函数f(x)=x-sin(x)- cos(x)的最大值,要求使用自定

义函数实现f(x)功能。(20分)

4、编写函数fun,通过指针实现将一个字符串反向。要求主函数输入字符串,通过调用函数fun实

现输入字符串反向。(20分)

5、已知学生三门课程基本信息如下。请使用结构体编程,计算学生三门课程平均成绩后,列表输出

学生的姓名、数学、英语、计算机、平均分信息,并按平均分排序。(20分)

姓名数学英语计算机

Mary 93 100 88

Jone 82 90 90

Peter 91 76 71

Rose 100 80 92

6、附加题:编程实现输入一串英文,统计其中各单词出现的个数(不区分大小写字母),以“000”

作为字符串输入结束标志,例如:

Twinkle twinkle little star 000(回车)

twinkle little star

2 1 1 (50分)

1、编程解决如下问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问

鸡翁,鸡母,鸡雏各几何?(20分)

#include"stdio.h"

void main()

{

int x,y,z;

for(x=0;x<=100;x++)

for(y=0;y<=100;y++)

for(z=0;z<=100;z++)

if(5*x+3*y+z==100&&x+y+3*z==100)

printf("鸡翁:%-4d鸡母:%-4d鸡雏:%-4d\n",x,y,3*z);

getch();

}

2、编程实现:有二维数组a[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}},将数组a的每一行元

素均除以该行上绝对值最大的元素,按行输出新数组。(20分)

#include"stdio.h"

void main()

{

int i,j;

float a[3][3]={1.3,2.7,3.6,2,3,4.7,3,4,1.27},b[3][3],max[3];

for(i=0;i<3;i++){

for(j=0;j<3;j++)

if(a[i][j]>=0)

b[i][j]=a[i][j];

else

b[i][j]=-a[i][j];}

for(i=0,j=0;i<3;i++){

if(a[i][j]>b[i][j+1])

max[i]=b[i][j];

else

max[i]=b[i][j+1];

if(max[i]<=b[i][j+2])

max[i]=b[i][j+2];}

for(i=0;i<3;i++){

for(j=0;j<3;j++){

b[i][j]=a[i][j]/max[i];

printf("%f ",b[i][j]);}

printf("\n");

}

}

3、编程:设x、y取值为区间[1,10]的整数, f(x,y)=(3x-2y)/(x+y),求使f(x,y)取最小值的x1、

y1,要求使用自定义函数实现f(x,y)功能。(20分)

4、编写函数fun,其功能是:在字符串中所有数字字符前加一个“*”字符,要求通过指针实现。(20

分)

5、编程:已知学生记录由学号和学习成绩构成,N名学生的记录已存入结构体数组中,找出成绩最

低的学生,并输出这个学生的信息,已知学生信息如下。(20分)

A01,81;A02,89;A03,66;A04,87;A05,77

A06,90;A07,79;A08,61;A09,80;A10,71

6、附加题:编写一个函数InverseByWord(char *sentence),实现一个英文句子按单词逆序存放的

功能,并给出测试程序。(50分)

如:This is an interesting programme.

逆序后变为:.programme interesting an is This

第五届全国ITAT教育工程就业技能大赛决赛试题C语言程序设计

1、求解钢材切割的最佳订单。(60分)

(1)描述:编写程序,从订单中选择一组订单对钢材作切割加工,使钢材得到最佳利用,约定每一次切割会损耗固定长度的钢材(约定该值为2)。已知线型钢材总长度、订单数和各订单需要的钢材长度;

(2)输入:钢材总长度s、订单数n、各定单需要的钢材长度;

(3)输出:可以使钢材得到最佳利用的订单号、该订单需要的钢材长度。

例如:

Please input total length of the steel s:28(回车)

Please input number of order n:8(回车)

Please input the orders :

5(回车)

6(回车)

7(回车)

8(回车)

9(回车)

10(回车)

12(回车)

15(回车)

屏幕输出:

C hoice one order 1 length=5 order 3 length=7 order 7 length=12

C hoice two order 2 length=6 order 4 length=8 order 6 length=10

Press any key to quit …

2、产生无连续重复部分的字符串。(60分)

(1)描述:编写程序,产生由1,2,3这3个数字符号所构成、长度为n的字符串,并且在字符串中对于任何一个子串而言,都不会有相邻的、完全相同的子串;

(2)输入:字符串长度n;

(3)输出:无相邻重复子串的所有字符串,每个字符串换行输出。

例如:

Please input string length n: 5 (回车)

屏幕输出:

13121

13123

13212

……

1. 输入一个五位整数,将它反向输出。例如输入12345,输出应为54321。(15分)

2. 用两种循环结构分别编程计算1+2+3…+100的值。

运行结果为“1+2+…+100=5050”(15分)

3. 从终端读入20个数据到数组中,统计其中正数的个数,并计算它们之和。(15分)

#include"stdio.h"

#define n 20

void main()

{

int i,j=0;

float a[n],s=0;

for(i=0;i

scanf("%f",&a[i]);

for(i=0;i

if(a[i]>=0){

s=s+a[i];

j++;}}

printf("正数的个数:%d\n它们之和:%f\n",j,s);

getch();

}

4. 利用指针实现将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中各单元的值。

(20分)

5. 要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,要求换成30张小

钞票,每种面值的至少一张,编程输出所有可能的换法,程序应适当考虑减少重复次数。(25分) #include"stdio.h"

void main()

{

int x,y,z,k;

for(x=1;x<5;x++)

for(y=1;y<=20;y++)

for(z=1;z<=41;z++)

for(k=1;k<=83;k++)

if(50*x+20*y+10*z+5*k==500&&x+y+z+k==30)

{

printf("%d %d %d %d\n",x,y,z,k);

}

}

6. 求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,并作为函数值返回,最后

结果s输出到文件out.dat中。例如若n为1000时,函数值应为:s=153.909064。(30分)

C语言试卷及答案

《C语言程序设计》考试试卷(答案) 一、填空题(每小空1分,共10分) 1.C语言程序的三种基本结构是顺序结构、选择结构、循环结构。 2.一个C程序有且仅有一个main( ) 函数。 3.C语言描述“x和y都大于或等于z”的表达式是x>=z && y>=z。 4.C语言可以用来实现循环的结构化语句是while、do while、for。 5.数组名表示数组在内存的首地址。 6.int a=3,*p=&a;*p+2的值是5。 二、单项选择题(每小题2分,共70分) 1.__B___是C语言合法的常量。 (A).45(B)078 (C)25.6e3.4 (D)‘xy’2.一个程序的执行是从 A 。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 (C)本程序的main函数开始,到本程序文件的最后一个函数结束。 (D)本程序文件的第一个函数开始,到main函数结束。 3.以下叙述正确的是 C 。 (A)在C程序中,main函数必须位于程序的最前面。 (B)C程序每行中只能写一条语句。 (C)C语言本是没有输入输出语句。 (D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 4.以下叙述不正确的是 D 。 (A)逗号运算符的运算级最低。 (B)ABC和abc是两个不同的变量。 (C)若a和b类型相同,在执行a=b后,b的自身值不变。 (D)‘a’和“a”是完全等价的常量。 5.int x=3,y=2;则表达式x+=x*=y+8的值为 C 。 (A)28 (B)30 (C)60(D)17 6.设x=2.7,a=8,y=4.9,算术表达式x+a%3*(int)(x+y)%5/3的值为 B 。 (A)2.7 (B)3.7(C)4.7 (D)4.03 7.执行下面两个语句后,输出的结果为__D___。 char c1=98; printf(“%d %c”,c1,c1-32); (A)97 66 (B)98 b (C)b 66 (D)98 B 8.执行下面语句后的结果为 C 。 y=10;x=y++; (A)x=10,y=10 (B)x=11,y=11 (C)x=10,y=11(D)x=11,y=10 9.Char w;int x;float y;double z;则表达式w*x+z-y值的数据类型是A 。 (A)double (B)char (C)int (D)float 10.C语言中要求操作数必须是整数的运算符是 B 。

c语言试题及答案

1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (A) double fun(int x, int y) (B) double fun(int x; int y) (C) double fun(int x, int y); (D) double fun(int x,y); 3、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

C语言全部题目及答案

C语言全部题目及答案 SANY GROUP system office room 【SANYUA16H-

C语言全部题目及答案 Exercise 1: Programming Environment and Basic Input/Output 1.Write a program that prints “This is my first program!” on the screen. (a)Save this program onto your own disk with the name of e2-1a; (b)Run this program without opening Turbo C; (c)Modify this program to print “This is my second program!”, then save it as e2-1b. Please do not overwrite the first program. 2.Write a program that prints the number 1 to 4 on the same line. Write the program using the following methods: (a)Using four “printf” statements. (b)Using one “printf” statement with no conversion specifier(i.e. no ‘%’). (c)Using one “printf” statement with four conversion specifiers 3.(a) Write a program that calculates and displays the number of minutes in 15 days. (b) Write a program that calculates and displays how many hours 180 minutes equal to. (c) (Optional) How about 174 minutes?

c语言试题及答案 ()

第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由

主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。

C语言期末考试题含答案

C语言期末考试题含答 案 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是( ) A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中( ) A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是( ) A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是( ) A )x1=%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:float a=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(21 的计算结果不. 相符的是( ) A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是( ) A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue

7.在while(!x)语句中的!x与下面条件表达式等价的是() A) x!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include <> void main(){ int i=1,j=1,k=2; if( (j++||k++)&&i++ ) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2B)2,2,1C)2,2,2D)2,2,3 9、有以下程序: #include <> void main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是() A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 10、有以下函数定义: void fun(int n,double x){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是() A)fun(int y,double m); B)k=fun(10,; C)fun(x,n); D)void fun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。

C语言试题及答案

一、单项选择题 1. 软件危机具有下列表现( d )。 I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住 III. 软件常常不可维护IV. 软件成本逐年上升 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。 A. 运行和维护阶段 B. 设计阶段 C. 代码实现阶段 D. 测试阶段 3. 下列属于软件的特点的是(D )。 A. 软件是一种逻辑实体,具有抽象性 ~ B. 软件在使用过程中没有磨损、老化的问题 C. 软件不同于一般程序,它的一个显著特点是规模庞大,复杂程度高 D. 以上都正确 4. 软件工程的出现是由于(D )。 A. 软件危机的出现 B. 计算机硬件技术的发展 C. 软件社会化的需要 D. 计算机软件技术的发展 5. 软件开发技术不包含( d )。 A. 软件开发方法学 B. 软件工程环境 C. 软件工具 D. 软件质量度度量 6. 软件工程的课程特点( D )。 【 I. 学科理论及其知识应用的多维性 II. 工程化 III. 浓厚的方法学色彩 IV. 实践性、指导性强 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 7. 下列属于应用软件的是( b )。 I. 计算机辅助教学软件II. 软件测试工具 III. 办公自动化软件IV. 工程与科学计算软件

A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 8. 需求分析阶段最重要的技术文档是( b )。 - A. 设计说明书 B. 需求规格说明书 C. 可行性分析报告 D. 用户手册 9. 以下关于数据流图的说法错误的是( c )。 A. 数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储 B. 数据流图是用作结构化分析的一种工具 C. 传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成 D. 数据流图的绘制采用自上向下、逐层分解的方法 10. 数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( c )。 A. 数据库设计 B. 数据通信 C. 数据定义 D. 数据维护 11. 需求分析阶段的研究对象是( b )。 ¥ A. 系统分析员要求 B. 用户要求 C. 软硬件要求 D. 系统要求 12. 结构化方法的基本原则是( b )。 A. 模块化 B. 抽象与分解 C. 信息隐蔽 D. 逐步求精 13. 耦合度最高的是(b)耦合。 A. 环境 B. 内容 C. 控制 D. 数据 14. 内聚程度较低的是( a )内聚。 A. 偶然 B. 通讯 C. 顺序 D. 时间 15. 对一个程序来说,组成系统的模块数目( b ),则开发成本越小。 A. 越多 B. 越少 C. 顺序 D. 时间> 16. 画软件结构图时应注意调用关系只能是(B )。 A. 从下到上 B. 从上到下 C. 从左到右 D. 从右到左 17. 程序流程图中的箭头代表( b )。 A. 数据流 B. 控制流 C. 顺序流 D. 调用 18. 软件测试是软件质量保证的重要手段,下述( B )是软件测试的最基础环节。

C语言试题及答案

C语言试题及答案 Company number【1089WT-1898YT-1W8CB-9UUT-92108】

第1章C语言概述习题1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成

C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言 的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。

C语言考试题及答案

一、单项选择题:(10分,每题2分) 1.char *p[10];该语句声明了一个: c 。 A)指向含有10个元素的一维字符型数组的指针变量p B)指向长度不超过10的字符串的指针变量p C)有10个元素的指针数组p,每个元素可以指向一个字符串 D) 有10个元素的指针数组p,每个元素存放一个字符串 2.若int x;且有下面的程序片断,则输出结果为: D 。 for (x=3; x<6; x++) { printf((x%2) ? "##%d" : "**%d\n", x); } A) ##3B) **3C) **3D)##3**4 **4 ##4 ##4**5 ##5 ##5 **5 3.在while(!x)语句中的!x与下面条件表达式等价的是:D 。 A) x!=0 B) x==1 C) x!=1 D) x==0 4.已知 struct point { int x; int y; }; struct rect { struct point pt1; struct point pt2; }; struct rect rt; struct rect *rp = &rt; 则下面哪一种引用是不正确的__D______。 A) r t.pt1.x B) (*rp).pt1.x C) r p->pt1.x D) rt->pt1.x 5.若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为: C 。 A) *(a+j*n+i) B) *(a+i*n+j) C) *(*(a+i)+j) D) *(*a+i)+j CDDDC 二、分析程序并写出运行结果。(25分,每题5分) 1. #include main()

c语言试卷含答案

一、选择题(26分) 1. 正确的C语言标识符是(A)。 A._buy_2 B.2_buy C.?_buy D.buy? 2. 以下选项中,合法转义字符的选项是(A)。 A.’\\’ B.’\018’ C.’xcb’ D.’\ab 3、下列语句中,错误的是(B ) A、#define PI B、#include <>; C、if(2); D、for(;;) if(1) break; 4、能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是() A、 a>=10 or a<=0 B、 a>=0|a<=10 C、 a>=10 &&a<=0 D、 a>=10‖a<=0 5、以下对break语句使用的正确描述是() A、可以出现在程序中的任何位置 B、只能出现在循环结构中或switch结构中 C、只能出现在switch结构中 D、只能出现在循环结构中 6. C语言程序的基本单位是(C)。 A.程序行 B.语句 C.函数 D.字符7、已知各变量的类型说明如下:() int m=6,n, a, b; unsigned long w=8;

double x=, y=; 则以下符合C语言语法的表达式是(A)。 A.a+=a-=(b=2)*(a=8) B. n=n*3=18 C.x%3 D.y=float (m) 8、已有定义:char x[]=“ab”,y[ ]={‘a’,’b’ };,以下叙述中正确的是( C) A、数组x和y的长度相同 B、x数组长度小于y数组长度 C、x数组长度大于y数组长度 D、上述说法都不对 9、设有定义“int x=3,y,*p=&x”,则下列语句中使y不为3的语句是(D ) A、y=*&x B、y=*p C、y=x D、y=&x 10、设x、y、z均为int型变量,则执行语句:x=y=3;z=++x||++y;后,y的值为() A、不定值 B、4 C、3 D、1 11.有如下程序段: int x1,x2; char y1,y2; scanf(”%d%c%d%c”,&x1,&y1,&x2,&y2); 若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是(A)。 (注: └┘ 代表空格) A.10A └┘20B B.10 └┘ A20B C.10 └┘A └┘ 20 └┘ B D.10A20 └┘ B 12.有如下程序段,对应正确的数据输入是(A)。 float a,b; scanf(”%f%f”, &a,&b);

C语言试卷(含答案).doc

一、单项选择题(每小题 2 分,共 40 分) 1、sizeof(float)是() A.一个双精度型表达式 B.一个整型表达式 C.一种函数调用 D.一个不合法的表达式 2、设 i 是 int 型变量 ,f 是 float 型变量 ,用下面的语句给这两个变量输入值: scanf("i=%d,f=%f",&i,&f); 为了把 100 和分别赋给 i 和 f,则正确的输入为()。 A.100 B.i=100,f=765.12 C.100<回车 > D.x=100y= 3、#include<> voidmain() { inta=3,b=2,c=1; intx=10,y=20; if(a voidmain() { intnum=0; while(num<=2){ num++; printf("%d",num); } } 输出结果是()。 A.123 B.012 C.23 D.12 8、下面的 C 语言代码段的输出结果是()。 intj; for(j=1;j<10;j+=2) printf("%d",j); A.123456789 B.2468 C.13579 D.12468 9、在 C 语言中 ,表达式 :10!=9 的值是()。 A.true B.非零值 C.0 D.1 10、分析下面的 C 代码段 : charstr1[15]="SeaView";

C语言试题及答案

第 1 章 C 语言概述习题 单项选择题 1. (1) C语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 ⑵)在C语言中,每个语句必须以 D 结 束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 ⑶标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 ⑷用C语言编与的源文件经过编译,若没有产生编译错误, 则系统将(B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行 结果 D.自动保存源文件 (5)下列说法中正确的是(B )。 A. 由于C源程序是高级语言程序,因此一定要在TC软件中输入 B. 由C源程序是字符流组成,因此可以作为文本文件在任何 文本编辑的软件中输入 C. 由于C程序是高级语言程序,因此输入后即可执行 D. 由于C程序是高级语言程序,因此它由命令组成 (6)下列说法中正确的是(A )。 A. C语言程序由主函数和0个或多个函数组成 B. C语言程序由主程序和子程序组成

C. C语言程序由子程序组成 D. C语言程序由过 程组成 ⑺下列说法中错误的是(D)。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2.填空题 (1) C语言只有37 个关键字和9 种控制语句。 ⑵ C语言是一种“中级语言”,既具有高级语言的特点又具有低级语言 的特点;既适合于开发系统软件又适合于编写 应用程序。 (3) 每个源程序有且只有一个丄—函数,系统总是从该函数 开始执行C语言程序。 (4) 在C语言程序中允许出现的字符集是ASCII码字符集 ⑸C 语言的程序中有特殊含义的英语单词称为—保留字。 (6) C语言标识符的长度是前__8 _____ 位有效。 (7) C语言中,标识符的定义规则是以字母或下划线为开 头_。 (8) C语言程序的注释可以出现在程序中的任何地方,它总是 以£—符号作为开始标记,以*/ 符号作为结束标记。

c语言试题和答案

《C语言》课程综合复习资料 一、单选题 1. 在C语言中,字符型数据在内存中的存储形式是 A)原码 B)补码 C)反码 D)ASCII码 2. 在C语言中,十进制数47可等价地表示为 A) 2f B) 02f C) 57 D) 057 3. 设有定义:int x=12,n=5; 则表达式 x%=(n%2) 的值为 A) 0 B) 1 C) 2 D) 3 4. 设有定义语句:char str[][20]={,"Beijing","中国石油大学"},*p=str; 则printf("%d\n",strlen(p+20)); 输出结果是 A)10 B) 6 C) 0 D) 20 5. 已定义以下函数: fun(int *p) { return *p; } 该函数的返回值是 A)不确定的值 B)形参p所指存储单元中的值 C)形参p中存放的值 D)形参p的地址值 6. C语言中,函数返回值的类型是由 A)return语句中的表达式类型决定 B)调用函数的主调函数类型决定 C)调用函数时的临时类型决定 D)定义函数时所指定的函数类型决定 7. 有以下函数定义: void fun( int n , double x ) { …… } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是 A) fun( int y , double m ); B) k=fun( 10 , 12.5 ); C) fun( 10 , 12.5 ); D) void fun( 10 , 12.5 ); 8. 以下选项中不能正确赋值的是 A) char b[]={′H′,′e′,′l′,′l′,′o′,′!′}; B) char b[10];b="Hello!";

c语言试题及答案

c语言试题及答案 Prepared on 24 November 2020

1、以下正确的说法是(B) (A)用户若需要调用标准库函数,调用前必须重新定义 (B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C)系统根本不允许用户重新定义标准库函数 (D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是(A) (A)doublefun(intx,inty) (B)doublefun(intx;inty) (C)doublefun(intx,inty); (D)doublefun(intx,y); 3、以下正确的函数形式是(D) (A)doublefun(intx,inty){z=x+y;returnz;} (B)fun(intx,y){intz;returnz;} (C)fun(x,y){intx,y;doublez;z=x+y;returnz;} (D)doublefun(intx,inty){doublez;z=x+y;returnz;} 4、以下正确的说法是(A ) 在C语言中 (A)实参和与其对应的形参各占用独立的存储单元 (B)实参和与其对应的形参共占用一个存储单元

(C)只有当实参和与其对应的形参同名时才共占用存储单元 (D)形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是(A) 该函数 (A)没有返回值 (B)返回若干个系统默认值 (C)能返回一个用户所希望的函数值 (D)返回一个不确定的值 6、以下不正确的说法是(B) C语言规定 (A)实参可以是常量、变量和表达式 (B)形参可以是常量、变量和表达式 (C)实参可以为任意类型 (D)形参应与其对应的实参类型一致 7、以下正确的说法是(C) (A)定义函数时,形参的类型说明可以放在函数体内 (B)return后边的值不能为表达式 (C)如果函数值的类型与返回值类型不一致,以函数值类型为准 (D)如果形参与实参的类型不一致,以实参类型为准

C语言试题及答案

大学C语言考试题库 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系

一c语言试题及答案

一、单项选择题(20分,每题2分) 1.程序段 int *p,a; p=&a; a=10; printf("%d",p); 的输出应为: A)10 B)0 C)不能确定 D)语法错误 2.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是: A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式3.以下语句或语句组中,能正确进行字符串赋值的是。 A)char *sp;*sp="right!"; B)char s[10];s="right!"; C)char s[10];*s="right!"; D)char *sp="right!"; 4.for(i=0;i<10;i++) if(i〈=5) break; 则循环结束后i的值为 A)0 B)1 C)5 D)10 5.有以下程序 main() { int m,n,p; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d%d%d\n",m,n,p); }

若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是。A)m=123n=456p=789 B) m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 789 6.C语言中,最基本的数据类型包括: A)整型、实型、逻辑型 B)整型、字符型、数组 C)整型、实型、字符型 D)整型、实型、结构体 7.以下说法正确的是 A) C程序总是从第一个定义的函数开始执行 B) 在C程序中,要调用的函数必须在main()函数中定义 C) C程序总是从main()函数开始执行 D) C程序的main()函数必须放在程序的开始部分 8.程序段 int *p, a=1; p=&a; *p=10; a的值为: A) 1 B) 10 C) 不能确定 D) 11 9.以下定义语句中,错误的是 A) int a[]={1,2}; B) char *a[3]; C) char s[10]="test"; D) int n=5,a[n]; 10.假定int类型变量占用两个字节,有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是 A) 3 B) 6 C) 10 D) 20 二、填空题(30分,每空2分) 1.已知字符A的ACSII码值为65,以下语句的输出结果是 (1) 。

c语言试题及答案

一、单选题 1.在C语言中,下列类型属于构造类型的是( D ) A.整型 B.字符型 C.实型 D.数组类型 2.下列字符串不是标识符的是( D ) A. sum B. Average C. Day_night D. M.D.JOHN 3. 在C语言中,回车换行符是( A ) A. n B. t C. v D. b 4. 在C语言中,语句和数据定义是用( C )作为结束标记的A.句号 B.逗号 C.分号 D.括号 5. 设有如下定义: int x=10,y=5,z; 则语句printf(“%dn”,z=(x+=y,x/y)); 的输出结果是( C ) A.0 B.1 C.3 D.4 6. 10.以下程序的输出结果是( B ) main( ) {char c1=’8’,c2=’2’; printf(“%c,%c,%d,%dn”,c1,c2,c1-c2,c1+c2); }

A.因输出格式不合法,输出出错信息 B.8,2,6,106 C.8,2,6,10 D.8,2,5,9 7.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是( A )main( ) {int x; scanf(“%d”,&x); if(x++>5) printf(“%dn”,x); else printf(“%dn”,x--); } A.7和5 B.7和4 C.6和4 8.表达式(int)2.1416的值时( A ) A. 2 B. 2.1 C. 0 D. 3 9.下列运算符优先级最高的是( B ) A. > B. + C. && D. != 10. C语言容许函数值类型缺省定义,此时该函数值隐含的类型时( B ) A. float型 B. Int型 C. Long 型 D. Double型 11、C程序的基本构成单位是( C) A、子程序 B、过程 C、函数 D、文件 12、C语言中要求操作数都为整型数据的算术符是(C )

c语言习题及答案

【习题1】 一、判断并改错 1.1 C程序执行的入口是main()函数,所以main函数必须放在程序的开头。 错误:main函数可以放在程序的任何位置。并不限定在程序的开头。 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。 错误:不可以交叉出现,数据说明部分在执行语句部分的前面。 scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。 正确 注释内容太多会影响程序的执行效率。 错误:不会影响程序的执行效率。因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。 二、编程题 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。 提示:定义圆的半径r,圆的周长:2**r,输出结果保留2位小数可以用%.2f 输入两个整数,输出其中最大者。 提示:模仿例 【习题2】 一、单项选择题 下面四个选项中,均是不合法的用户标识符的选项是(C)。 A)BA 、x_0、do B)float、1a0、_Y C)x-y、goto、123 D)_123、tmp、CHAR 下列选项中不正确的常数的选项是(D)。 A)0x12F B)C)D)0388 下面正确的字符常量是(B)。 A)"a" B)'\\' C)"\n" D)"\376" 下面正确的字符串常量是(C)。

A)'a' B)'376' C)"\\n" D)376 表达式'A'+4*'b'的正确结果是(B )。 A)67 B) C)不确定 D)67L 执行printf("%x",100);后的输出结果是(C )。 A)100 B)0x100 C)0X64 D)64 存储字符串"\\\'abc\376"需要的字节数是(D )。 A)11 B)13 C)6 D)7 【习题3】 一、计算题 +7%3*11%2/4 (答案: 5/2+2+7%6 (答案: 3.3 a=12,a*=2+3 (答案:a=60) 3.4 a=3,b=4,c=5,a+b>c&&b= =c (答案:0) 3>53:5<825:40 (答案:25) 设a=1,b=2,c=3,d=4,m=n=1,有表达式(m=a>b)&&(n=c>d),计算表达式后m,n 的值 (答案:m=0,n=1) 设int b=7;float a=,c=;求下面表达式的值。 a+(int)(b/2*(int)(a+c)/2)%4 (答案: 二、单项选择题 若有代数式bc xy 8 ,则不正确的C 语言表达式是(C )。 A )x/b/c*y*8 B )8*x*y/b/c C )8*x*y/b*c D )x*y/c/b*8 有如下类型说明: int k,a,b; unsigned long w=8; double x= 则以下不符合C 语言语法的表达式是(A )。 A)x%(-3) B)w*=-2

国家开放大学C语言试题及答案

1.C语言中的循环类语句有3条,它们是()。 选择一项: A. for,if,while B. for,while,do C. while,do,switch D. for,break,do 正确答案是:for,while,do 2.C语言中的跳转类语句有四条,它们是goto,return和()。 A.break,const B.static,continue C.break,continue D.while,extern 正确答案是:break,continue 3.当不需要函数返回任何值时,则所使用的返回类型为()。 A.Int B.union C.void D.V oid 正确答案是:void 4.在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和()。 选择一项: A.表达式 B.语句 C.函数体 D.参数表正确答案是:参数表 5.在一个程序文件的开始,若需要使用一个包含命令包含一个头文件时,则命令标识符为 A.#clude B.#const C.#include D.#defile正确答案是:#include 6.在#include预处理命令中,不可以包含()。 A.系统头文件 B.程序文件 C.用户头文件 D.目标文件正确答案是:目标文件 7.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据占用的字符位置个数为()。 选择一项: A.5 B.6 C.4 D.2 正确答案是:6 8.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其小数部分占用的字符位置个数为()。 选择一项: A.5 B.6 C.4 D.2正确答案是:2 9.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其整数部分占用的字符位置个数为()。 A.6 B.4 C.3 D.2正确答案是:3 10.在scanf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输入的数据类型为()。选择一项: A.char B.int C.float D.double正确答案是:float 11.在scanf()函数调用的格式字符串中,若使用格式符为“%Lf”,则对应输入的数据类型为()。 A.char B.int C.float D.double正确答案是:double

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