高级语言程序设计A西南交通大学Word文档下载推荐.docx
《高级语言程序设计A西南交通大学Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《高级语言程序设计A西南交通大学Word文档下载推荐.docx(38页珍藏版)》请在冰点文库上搜索。
![高级语言程序设计A西南交通大学Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/11/119a4488-e377-421b-beac-3e440dd8e834/119a4488-e377-421b-beac-3e440dd8e8341.gif)
得到
(A)g
(B)h
(C)i
(D)j你选择的答案:
[前面作业中已经做正确][正确]正确答案:
C解答参考:
5.
函数Func的功能是()
intFunc(char*ptr)
{char*p;
p=ptr;
while(*p++);
return(p-ptr-1);
}
(A)比较两个字串的大小
(B)求字符串的长度
(C)将串ptr复制到p中
(D)以上三种说法都不对你选择的答案:
6.以下可作为函数fopen中第一个参数的正确格式是
(A)c:
user\text.tex
(B)c:
\user\text.txt
(C)“c:
usertext.tex”
(D)“c:
text.txt”你选择的答案:
D[正确]
D解答参考:
7.
若有宏定义#definePI3.14
#defineS(r)PIrr则主函数中语句s2=S(r+3);
宏替换后的结果为
(A)s2=PI*r+3*r+3
(B)s2=3.14*(r+3)*(r+3)
(C)s2=3.14*r+3*r+3
(D)s2=PIrr你选择的答案:
7.当调用函数时,实参是一个数组名,则向函数传送的是。
(A)数组的长度
(B)数组的首地址
(C)数组每一个元素的地址
(D)数组每个元素中的值你选择的答案:
8.若有函数声明为:
voidfunc(double*p);
则以下函数调用正确的是。
(A)doublex;
f(x);
(B)doublex;
f(x);
(C)doublex;
f(&
x);
(D)intx;
C
9.若定义typedefunion{inta;
longb;
doublec;
}TY;
则表达式sizeof(TY)的值为。
(A)1
(B)2
(C)4
(D)8
D
11.
要用fopen函数打开一个新的二进制文件,该文件要既能写也能读,则文件方式字符
串应是(10)。
(A)“ab+”
(B)“wb+”
(C)“r+”
(D)“ab”你选择的答案:
二、主观题(共16道小题)
12.
main()
{intx=2,y=-1,z=2;
if(x<
Y)<
span>
if(y<
0)z=0;
elsez+=1;
printf(“%dn”,z);
写出程序输出结果
(1)。
参考答案:
2
13.下面程序的运行结果是
(2)。
voidfl(void)
{intx=1;
staticy=2;
x++;
y++;
printf("
%d,%d\n"
x,y);
}voidmain(){intk;
for(k=1;
k<
=3;
k++)fl();
2,3错一行扣1分
2,4无逗号扣1分
2,5无换行扣1分
14.#include”stdio.h”voidmain()
{chara[61],*s;
intn;
gets(a);
for(s=a;
*s;
s++)if(*s>
='
A'
&
&
*s<
Z'
)*s+=32;
puts(a);
若程序的输入为SWJTU,则输出结果为(3)。
swjtu
15.#include“stdio.h”#defineN5intswap(int*p,int*q){intt;
if(p
returnp<
Q;
<
/>
voidf(inta[],intm)
{int*p,*q;
p=a;
q=a+m;
while(swap(p,q)){p++;
q--}
voidmain()
{intm,a[N];
for(m=0;
mf(a,N-1);
m}若程序的输入为89234,则输出结果为(4)。
43298
16.写一个程序,建立N元整型数组,然后输入一个整数x,查找x是否包含在数组中,若在,则返回第一次出现的下标以及总的出现次数;
否则,输出下标为-1,总的出现次数为0.
(8分)
#include“stdio.h”
#defineN8intlocate(inta[N],intx,int*pc){inti,first=-1;
*pc=0;
for(i=0;
i<
N;
i++)if(a[i]==x){if(*pc==0)first=i;
(*pc)++;
returnfirst;
}voidmain(){inta[N],i,count,p;
printf(“Input%dintnumbers:
n”,N);
i++)scanf(“%d”,a+i);
printf(“Inputx=“);
scanf(“%d”,&
p=locate(a,x,&
count);
printf(“Firstposition=%d,count=%dn”,p,count);
(1)
正确定义变量1
(2)
算法正确
5
(3)
正确输入
1
(4)
正确输出
分分分
17.输入若干双精度实数,直到0时停止,计算并输出这些实数的平均值。
voidmain()
{intn=0;
doublea,sum=0,av;
printf(“Inputdoubletypenumbersuntilinput0:
\n”);
while
(1)
{scanf(“%lf”,&
a);
if(!
a)break;
n++;
sum+=a;
if(n==0)printf(“Noinputdata.\n”);
else{av=sum/n;
printf(“av=%.4f\n”,av);
(1)程序结构(主函数,包含文件)正确1分
(2)正确定义计数变量以及初始化1分
正确定义求和变量并初始化1
(4)循环控制结构正确1
(5)输入语句及格式正确1
(6)
(7)计数、累加求和以及求均值正确1分
(8)求均值时先判断计数变量值是否为01分
输出语句及格式正确1
18.C语言的三种循环语句是,
dowhile循环、
循环和
循环;
结构化
程序设计方法主张限制使用
语句。
1)while
2
)
for3
)go
to
19.已知inta=2,b=3,
c=0;
执行下列语句后,
写出各变量的值。
c=b++―a++;
变量a=,b=,c=
341
20.循环语句for(i=0;
i<
=10;
i--);
其循环的次数为___
0
21.C语言提供了三种预处理功能,它们是:
宏定义、包含文件和参考答案:
条件编译
22.若有定义:
inta=0,b=0,c=0,d=0;
则执行语句a=(b=3,c=5*b++,d=++c+1);
后,变量a的值是,变量b的值是,变量c的值是,变量d的值是。
1741617__
23.若有定义:
inta=1,b=2,c=3,d=4;
,则表达式:
a<
=b?
a:
c<
=d?
d的值是,执行表
达式(a>
b)&
(c++)后,c的值为。
13
24.有如下语句:
charA[]={"
SWJTU"
};
该字符串的长度是,A[3]=
。
5,T?
(允许无单引号和写ASCII码84)
25.若有定义charch='
C'
;
则puchar((ch>
='
ch<
)?
(ch+32):
ch);
语句的输出结果为。
c
26.若有定义inta[]={1,2,3,4},*p=a+1;
则表达式*++p的值为。
参考答案:
3
27.若有类型定义typedefintMat[10];
则Mata[5];
表示的实际数组定义是
inta[5][10];
在线只需提交客
观题答案。
本次作业是本门课程本学期的第2次作业,注释如下:
一、单项选择题(只有一个选项正确,共10道小题)
1.以下说法中错误的是。
(A)a*=1;
这个式子等价于a=a*1;
(C)a/=b-c;
这个式子等价于a=a/(b-c);
(D)a*=b;
这个式子等价于a=a*b;
你选择的答案:
B[正确]正确答案:
2.
16、若有如下说明
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为6的元素的表达式是
(A)*p+5
(B)*(p+5)
(C)*p+=5
(D)p+5你选择的答案:
3.下面哪条语句是错误的
(A)int
a=0;
(B)int
a=b=c=1;
(C)int
a=0,b=0,c=0;
(D)int
a,b,c=1;
B[正确]
4.已知实型变量a存贮的是一个0~1之间的实数,将a以两位小数百分比形式输出(如:
a=0.347592,则输出为34.75%)正确的打印语句是
(A)printf(
“%.2f%%”,a*100);
(B)printf(
“%.2f%”,a);
(C)printf(
“%.2f%%”,a/100);
(D)printf(
“%.2f%%”,100*(a+0.5));
A[正确]
5.定义C函数时,不给出返回值类型,则默认的返回值类型是
(A)float
(B)void
(C)int
(D)NULL指针你选择的答案:
C[正确]正确答案:
6.C语言存贮字符串时,用特殊字符表示字符串结束
(A)?
x0a?
(B)?
0?
(C)13
(D)?
D[正确]正确答案:
有以下程序段
intk=0;
while(k=1)k++;
则while循环执行的次数是
(A)无限次
(B)有语法错,不能执行
(C)一次也不执行
(D)执行1次你选择的答案:
A[正确]正确答案:
A解答参考:
8.对于for循环语句:
for(x=0,y=0;
(y=3)&
(x<
4);
x++)y++;
,正确的是。
(A)无限循环
(B)循环次数不定
(C)执行4次
(D)执行3次你选择的答案:
9.有定义struct{inta[5];
}b;
则正确表达成员数组a的最后一个元素地址的是
(A)b.a
(B)b.a[5]
(C)b.a+4
(D)&
(&
b>
a[4])你选择的答案:
10.以只写方式打开一个二进制文件,应选择的文件操作方式是
(A)"
a+"
(B)"
w+"
(C)"
rb"
(D)"
wb"
注意:
、主观题(共16道小题)
11.下面程序的输出是
(1)。
#include"
stdio.h"
voidmain()
{chara[40]="
administrators"
p;
for(p=a;
p!
p++)putchar(p32);
全错0分
ADM错一个字母扣1分
12.下面程序的运行结果是
(2)。
{intx=1;
staticy=2;
x++;
y++;
printf("
}voidmain(){intk;
for(k=1;
2,3错一行扣1分
13.下面程序的运行结果是(3)。
{intm,n;
m=10;
n=1;
do{m;
n+=5;
if(!
(n%3))printf("
%4d%4d\n"
m,n);
}while(m>
n);
无明显空格扣1分
129错一数扣2分;
14.下面程序的运行结果是(4)。
inta[4]={1,2,3,4};
{intp=a,m,n;
for(m=3;
m>
=0;
m)
for(n=0;
n<
=m;
n++)printf("
%d"
(p+n));
12341231211234,123,12,1四段各1分
15.数组名作为参数传递给函数,作为实参的数组名被处理为该数组的
(1)
(1)首地址
16.一个C程序中必须有
(2)函数,无论该函数在整个程序中的位置如何,C程序总是从该函数开始执行。
(2)主或main()
17.有如下语句:
该字符串的长度是(3),A[3]=(4)。
(3)5(4),T?
18.若有定义intx=5,n=5;
则执行语句x+=n++;
后,x的值=(5),n的值=(6)。
(5)10(6)6
19.C语言的静态变量以及静态数组元素默认的初值为(7)
(7)0
20.若有inta=2,b=1,c=0;
执行语句c=a++-b--;
后,变量c的值为(14)b的值(15)参考答案:
(14)1(15)0
21.结构化程序设计的三种基本结构包括有:
、__和。
选择结构循环结构顺序结构
22.算术表达式:
的C语言表达式是:
-b+sqrt(b*b-4*a*c)
23.编写一程序,从键盘读入一个字符串并存入字符数组,然后依次输出第1,3,5,7,⋯个字符。
例如:
输入为:
computer输出为:
cmue
#include
voidmain()/*
{chars[255];
inti;
/*gets(s);
/*for(i=0;
s[i];
i+=2)putchar(s[i]);
/*
程序结构与头文件正确2分*/正确输入2分*/正确定义字符数组2分*/正确输出3分*/
24.编程打印如下图形到屏幕上。
(9分)
编译连接
结构这三种基本结构来编写程序。
26.结构化程序设计只需采用顺序结构、分支结构和参考答案:
_循环_
本次作业是本门课程本学期的第3次作业,注释如下:
一、单项选择题(只有一个选项正确,共10道小题)1.C语言表示逻辑假的方法是
(A)FALSE
(B)0
(C)1
(D)NULL
2.C语言开始执行程序的开始执行点是
(A)程序中第一条可执行的语句
(B)程序中第一个函数
(C)程序中的main()函数
(D)包含文件中的第一个函数
3.continue语句的作用是
(A)中止函数的执行
(B)立即中止循环
(C)中止本次循环,直接开始下一次循环
(D)从一个循环体直接跳转至另一个循环体内你选择的答案:
4.有定义staticinta[]={1,2,3,4},*p;
执行语句p=a+2;
后,表达式*p的值为
(A)4
(B)1
(C)2
(D)3
5.下面用scanf语句获得从键盘输入的值,正确的语句是:
(A)inta[12];
scanf(“%d”,&
a[1]);
(B)chara[12];
scanf(“%s”,&
a);
(C)inta[12];
scanf(“%d,”a[1]);
(D)inta;
scanf(“%,d”a);
若有以下说明语句,且0<
=i<
=10,则()是对数组元素的错误引用
inta[]={1,2,3,4,5,6,7,8,9,0},*p,i;
p=a;
(A)*(a+i)
(B)p+i
(C)a[i]
(D)*(&
a[i])
以下程序的输出结果是
#defineSQR(X)X*Xmain(){inta=16,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
d\n"
a);
(A)16
(C)9
(D)1
8.C语言中,形参与实参之间的数据传递方式是
(A)只能按值传递
(B)只能按地址传递
(C)由使用者指定传递方式
(D)既可以按值传递也可以按地址传递你选择的答案:
则正确表达成员数组a的最后一个元素的
若有定义struct{inta[5];
地址表达式是
a[4])
10.若有函数说明为voidf(doubles);
则以下函数调用正确的是
二、主观题(共16道小题)
11.下列程序段的输出是。
{intk;
k<
5;
k++)
{
if(k%2)printf("
*"
);
elsecontinue;
#"
*#*#
12.下列程序段的输出是。
#include
intf(intx)
{staticy=1;
x+=y;
returnx;
k=f(3);
k,f(k));
5,8
13.表达式!
!
356的值是。