一、判断题(每小题1分,共15分)
1标准C中,只有数值型数据才能进行4则混合运算。
2标准C中,_a是合法的自定义标识符。
3有定义:float f;表达式f+=(int)36%2”不符合C语言语法。
4标准C中,逻辑运算的结果只有是1表示满足条件,而结果是0表示不满足条件。
6以下运算符排列顺序满足按照优先级从高到低的排列:‘&&’、‘!’、‘==’、‘-’。
7语句for(;;);是非法的。
8在C语言程序中可以由多个源文件构成,每个源文件都可以有自己的main()函数。
9while和do-while的主要区别是后者至少无条件执行一次。
10数组名代表数组的首地址是常量,所以将实参数组名表示地址传给形参数组名是错误的。
11当函数没有返回值类型时,表示函数类型为void。
12C语言中,指针变量作函数参数时,它们不是采取单向值传递的方式。
13一个函数中只允许有一条return语句。
14在C语言中,如果没有说明变量的存储类型是auto类型的。
15由于指针中所存放的地址都是整数,所以整型指针和浮点型指针可以相互赋值。
二、填空题(每空1分,共15分)
1. 若a=4;b=5,c=6;则表达式c==(b=-a); 中c的值是 (1) 。
2. 计算表达式的值:
4&&-4的值: (2) ;
设int a=3,b=4,c=5,则表达式a||b+c&&b==c的值: (3) ;
设x=25, a=7, y=47,则表达式x+a%3(int)(x+y)%2/4的值: (4) ;
设a=12,则表达式a=a/5的值: (5) ;
3. 若int x = 4,y = 6,z = 0;有循环while(x = y) {z ++;y--;}
则循环语句执行完后,z值为 (6) 。
4. 变量的指针就是指该变量的 (7) 。
5. 若有定义int (p)[4],则标识符p是 (8) ;若有定义int p[4],则标识符p是 (9) ;
6. 已有定义:char p[ ]={“France”,“Chinese”,“Russia”,“America”};则语句printf(“%s”,p[2]);printf(“%c”,(p[1]+2));printf(“%c”,((p+1)+1));
的输出结果分别为: (10) 、 (11) 、 (12) 。
7. 已有定义: int x=65; 若格式化输出结果为“A, 65”,则对应的格式化输出语句为printf(“ (13) , (14) ”, x, x)。
8. 已定义:int a[][2]={1, 2, 3, 4, 2, 6, 7, 2};则a[3][0]= (15) 。
三、简答题(每题4分,共12分)
1、简述选择语句if和else语句对与switch语句的区别。
2、简述在循环语句中,break和continue的区别。
3、若int a[5],p=a;简述p++和(p)++的区别。
四、下列各程序中每个程序各有2个错误,指出错误语句,写出对应正确语句(每小题4分,共16分)
五、程序填空题:下列程序中缺少若干条语句,在对应的下划线上填上合适的语句,每一个下划线只填一条语句(每小题6分,共24分)
六、阅读下列程序,写出运行结果(第一小题4分,第二小题6分,共10分)
七、编程题(8分)
编译程序,其功能是比较字符串的大小( 不允许 用系统提供的字符串比较函数strcmp)。要求是:
(1) 通过主函数调用一个函数strcompare来实现。
(2) 要求函数strcompare实现两个字符的比较:如第一个字符小于第二个字符则返回一个负值;如两个字符相等则返回0值;如第一个字符大于第二个字符则返回一个正值。
(3) 并输出两个字符串中相同部分的子串。
《C语言程序设计基础》试卷参考答案
一、判断题(每小题1分,共15分)
1~5 ; 6~10 ; 11~15
二、填空题(每空1分,共15分)
(1) 6 (2) 1 (3) 1 (4) 25 (5) 24 (6) 6
(7)地址 (8) 行指针,指向有四个元素的一维数组
(9)指针数组名,该数组有四个元素,每个元素都是指针
(10)Russia (11)i (12)h (13) %c (14) %d (15)7
三、简答题(每题4分,共12分)
1、if总是判断其后面的表达式的值是否为非零值,如是非零值则执行其后面的语句或由{}括起来的复合语句,否则执行else后面的语句。而switch语句则根据其后面表达式的可数值来判断,执行switch语句体内与其中的一个case:常量值相等语句后面的语句。执行break语句后,跳出switch语句体。
2、break是终止整个循环过程;continue是终止本次循环。
3、p++首先取a[0]的值,然后p指向a[1];(p)++使得a[0]的值自增1,但p保持不变。
四、下列各程序中每个程序各有2个错误,指出错误语句,写出对应正确语句(每小题4 分,共16分)
1、 (1)缺#include ; (2)scanf(“%f”,a); 改为 scanf(“%f”,&a);
2、 (1)缺sum=0; (2)for(i=1; i<=3; i++) 改为for(i=0;i<3;i++)
3、 (1)p1=p2 改为 p1=p2 (2)swap(&a, p) 改为swap(&a, p)
4、 (1)在if(m<0)语句后添加else if(m==0) a=1; (2) 添加 return(a);
五、程序填空题:下列程序中缺少若干条语句,在对应的下划线上填上合适的语句,每一个下划线只填一条语句(每小题6分,共24分)
1、 (1)x=0; (2)if(n==x) (3)s++;或s=s+1;
2、 (4)&num[i] (5)max< num[i] (6)num[i]!=0
3、 (7)n-i-1 (8)a[j]>a[j+1] (9)a[j+1]=temp
4、 (10)count=0; (11)n%10 (12)n>0或n!=0或n
六、阅读下列程序,写出运行结果(第一小题4分,第二小题6分,共10分)
1、 ###
2、 main i=1 j=2 k=2
sub i=1 j=2 k=1 x=2
sub i=1 j=2 k=1 x=3
七、编程题(8分)
#include
main()
{
int i,j, flag=0;
char str1[90],str2[90];
gets(str1);
gets(str2);
i=0;
do{
flag=strcompare(str1[i],str2[i]);
i++;
}while(str1[i]!=’’ && str2[i]!=’’ &&flag=0);
if(flag<0)printf(“%s小于%s ”,str1,str2);
else if(flag==0) printf(“%s 等于%s ”,str1,str2);
else printf(“%s大于%s ”,str1,str2);
printf(“两个字符串中相同的字串为:”);
j=0;
i--; 后3句可用str1[i]=’’; printf(“%s”,str1);代替//用str2也可以。
while(j<i){printf(“%c”,str1[i]);j++;} span=""> </i){printf(“%c”,str1[i]);j++;}>
}
int strcompare(char c1,char c2)
{
int v;
v=c1-c2;
return v;
}
//课后3
#include <stdioh>
int main()
{ void input(int );
void max_min_value(int );
void output(int );
int number[10];
input(number);
max_min_value(number);
output(number);
return 0;
}
void input(int number)
{int i;
printf("input 10 numbers:");
for (i=0;i<10;i++)
scanf("%d",&number[i]);
}
void max_min_value(int number)
{ int max,min,p,temp;
max=min=number;
for (p=number+1;p<number+10;p++)
if (p>max) max=p;
else if (p<min) min=p;
temp=number[0];number[0]=min;min=temp;
if(max==number) max=min;
temp=number[9];number[9]=max;max=temp;
}
void output(int number)
{int p;
printf("Now,they are: ");
for (p=number;p<number+10;p++)
printf("%d ",p);
printf("\n");
}
//课后14
#include <stdioh>
int main()
{void sort (char p,int m);
int i,n;
char p,num[20];
printf("input n:");
scanf("%d",&n);
printf("please input these numbers:\n");
for (i=0;i<n;i++)
scanf("%d",&num[i]);
p=&num[0];
sort(p,n);
printf("Now,the sequence is:\n");
for (i=0;i<n;i++)
printf("%d ",num[i]);
printf("\n");
return 0;
}
void sort (char p,int m) // 将n个数逆序排列函数
{int i;
char temp, p1,p2;
for (i=0;i<m/2;i++)
{p1=p+i;
p2=p+(m-1-i);
temp=p1;
p1=p2;
p2=temp;
}
}
//课后15
#include <stdioh>
int main()
{void avsco(float ,float );
void avcour1(char ()[10],float );
void fali2(char course[5][10],int num[],float pscore,float aver[4]);
void good(char course[5][10],int num[4],float pscore,float aver[4]);
int i,j,pnum,num[4];
float score[4][5],aver[4],pscore,paver;
char course[5][10],(pcourse)[10];
printf("input course:\n");
pcourse=course;
for (i=0;i<5;i++)
scanf("%s",course[i]);
printf("input NO and scores:\n");
printf("NO");
for (i=0;i<5;i++)
printf(",%s",course[i]);
printf("\n");
pscore=&score[0][0];
pnum=&num[0];
for (i=0;i<4;i++)
{scanf("%d",pnum+i);
for (j=0;j<5;j++)
scanf("%f",pscore+5i+j);
}
paver=&aver[0];
printf("\n\n");
avsco(pscore,paver); // 求出每个学生的平均成绩
avcour1(pcourse,pscore); // 求出第一门课的平均成绩
printf("\n\n");
fali2(pcourse,pnum,pscore,paver); // 找出2门课不及格的学生
printf("\n\n");
good(pcourse,pnum,pscore,paver); // 找出成绩好的学生
return 0;
}
void avsco(float pscore,float paver) // 求每个学生的平均成绩的函数
{int i,j;
float sum,average;
for (i=0;i<4;i++)
{sum=00;
for (j=0;j<5;j++)
sum=sum+((pscore+5i+j)); //累计每个学生的各科成绩
average=sum/5; //计算平均成绩
(paver+i)=average;
}
}
void avcour1(char (pcourse)[10],float pscore) // 求第一课程的平均成绩的函数
{int i;
float sum,average1;
sum=00;
for (i=0;i<4;i++)
sum=sum+((pscore+5i)); //累计每个学生的得分
average1=sum/4; //计算平均成绩
printf("course 1:%s average score:%72f\n",pcourse,average1);
}
void fali2(char course[5][10],int num[],float pscore,float aver[4])
// 找两门以上课程不及格的学生的函数
{int i,j,k,labe1;
printf(" ==========Student who is fail in two courses======= \n");
printf("NO ");
for (i=0;i<5;i++)
printf("%11s",course[i]);
printf(" average\n");
for (i=0;i<4;i++)
{labe1=0;
for (j=0;j<5;j++)
if ((pscore+5i+j)<600) labe1++;
if (labe1>=2)
{printf("%d",num[i]);
for (k=0;k<5;k++)
printf("%112f",(pscore+5i+k));
printf("%112f\n",aver[i]);
}
}
}
void good(char course[5][10],int num[4],float pscore,float aver[4])
// 找成绩优秀学生(各门85以上或平均90分以上)的函数
{int i,j,k,n;
printf(" ======Students whose score is good======\n");
printf("NO ");
for (i=0;i<5;i++)
printf("%11s",course[i]);
printf(" average\n");
for (i=0;i<4;i++)
{n=0;
for (j=0;j<5;j++)
if ((pscore+5i+j)>850) n++;
if ((n==5)||(aver[i]>=90))
{printf("%d",num[i]);
for (k=0;k<5;k++)
printf("%112f",(pscore+5i+k));
printf("%112f\n",aver[i]);
}
}
}
#include<stdioh>
int main()
{int a,b,c,t;
scanf("%d,%d,%d",&a,&b,&c);
if(a>b)
{t=a;
a=b;
b=c;
}
if(a>c)
{t=a;
a=c;
c=t;
}
if(b>c)
{t=b;
b=c;
c=t;
}
printf("%5d,%5d,%5d\n",a,b,c);
return 0;
}
以上就是关于C语言程序设计2015A卷-全部的内容,包括:C语言程序设计2015A卷-、c语言程序设计第四版答案 第八章指针 课后3 。14 。15答案、c语言程序设计实训教程龚义建版答案编写一程序,实现输入3个整数并按从小到大的顺序输出等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)