高级语言程序设计A西南交通大学.docx
《高级语言程序设计A西南交通大学.docx》由会员分享,可在线阅读,更多相关《高级语言程序设计A西南交通大学.docx(38页珍藏版)》请在冰豆网上搜索。
高级语言程序设计A西南交通大学
前一次作业详情
你已经完成:
11题(共有27题,客观题11道)
(注意:
若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。
在线只需提交客观题答案。
)
本次作业是本门课程本学期的第1次作业,注释如下:
一、单项选择题(只有一个选项正确,共11道小题)
1.以下正确的C标识符是
(A)0XH
(B)_80
(C)main#
(D)A
你选择的答案:
[前面作业中已经做正确][正确]
正确答案:
B
解答参考:
2.以下说法中正确的是
(A)一个函数在编译时被分配得到一个入口地址,这个入口地址称为函数的指针
(B)a/=b+c;这个式子和a=a/b+c;等价
(C)C语言开始执行程序的开始执行点是程序中第一条可执行的语句。
(D)对二维数组a赋值可以用这样的语句完成inta[4][]={1,2,3,4,5,6,7,8};
你选择的答案:
[前面作业中已经做正确][正确]
正确答案:
A
解答参考:
3.
设a是int型变量,b是float型变量,用下面的语句给这两个变量
输入值
scanf("a=%d,b=%f",&a,&b);
为了把100和76.5分别赋给i和f,则正确的输入为:
(A)10076.5
(B)a=100,b=76.5
(C)10076.5
(D)a=100b=76.5
你选择的答案:
[前面作业中已经做正确][正确]
正确答案:
B解答参考:
4.
若有如下说明。
chara[10]={‘a','b','c','d','e','f','g','h
','i','j'},*p=a;
则输出表达式*(p+8),即printf("%c\n",*(p+8));得到
(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)以上三种说法都不对你选择的答案:
[前面作业中已经做正确][正确]正确答案:
B解答参考:
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你选择的答案:
[前面作业中已经做正确][正确]正确答案:
C解答参考:
7.当调用函数时,实参是一个数组名,则向函数传送的是。
(A)数组的长度
(B)数组的首地址
(C)数组每一个元素的地址
(D)数组每个元素中的值你选择的答案:
[前面作业中已经做正确][正确]正确答案:
B解答参考:
8.若有函数声明为:
voidfunc(double*p);则以下函数调用正确的是。
(A)doublex;f(x);
(B)doublex;f(x);
(C)doublex;f(&x);
(D)intx;f(&x);
你选择的答案:
[前面作业中已经做正确][正确]正确答案:
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”你选择的答案:
[前面作业中已经做正确][正确]正确答案:
B解答参考:
(注意:
若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。
在线只需提交客观题答案。
)
二、主观题(共16道小题)
12.
main()
{intx=2,y=-1,z=2;if(xif(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
}
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);
for(m=0;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;ireturnfirst;
}voidmain(){inta[N],i,count,p;
printf(“Input%dintnumbers:
n”,N);
for(i=0;iprintf(“Inputx=“);scanf(“%d”,&x);p=locate(a,x,&count);
printf(“Firstposition=%d,count=%dn”,p,count);
}
(1)
正确定义变量1
(2)
算法正确
5
(3)
正确输入
1
(4)
正确输出
1
分分分
17.输入若干双精度实数,直到0时停止,计算并输出这些实数的平均值。
参考答案:
#include“stdio.h”
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分
(3)
分分分
正确定义求和变量并初始化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?
a:
d的值是,执行表
达式(a>b)&&(c++)后,c的值为。
参考答案:
13
24.有如下语句:
charA[]={"SWJTU"};该字符串的长度是,A[3]=
。
参考答案:
5,T?
(允许无单引号和写ASCII码84)
25.若有定义charch='C';则puchar((ch>='A'&&ch<='Z')?
(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;
(B)a/=b+c;这个式子和a=a/b+c;等价
(C)a/=b-c;这个式子等价于a=a/(b-c);
(D)a*=b;这个式子等价于a=a*b;你选择的答案:
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你选择的答案:
B[正确]正确答案:
B解答参考:
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[正确]
正确答案:
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[正确]
正确答案:
A
解答参考:
5.定义C函数时,不给出返回值类型,则默认的返回值类型是
(A)float
(B)void
(C)int
(D)NULL指针你选择的答案:
C[正确]正确答案:
C解答参考:
6.C语言存贮字符串时,用特殊字符表示字符串结束
(A)?
x0a?
(B)?
0?
(C)13
(D)?
0?
你选择的答案:
D[正确]正确答案:
D解答参考:
7.
有以下程序段
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次你选择的答案:
C[正确]正确答案:
C解答参考:
9.有定义struct{inta[5];}b;则正确表达成员数组a的最后一个元素地址的是
(A)b.a
(B)b.a[5]
(C)b.a+4
(D)&(&b>a[4])你选择的答案:
C[正确]正确答案:
C解答参考:
10.以只写方式打开一个二进制文件,应选择的文件操作方式是
(A)"a+"
(B)"w+"
(C)"rb"
(D)"wb"你选择的答案:
D[正确]正确答案:
D解答参考:
注意:
若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。
在线只需提交客
观题答案。
)
、主观题(共16道小题)
11.下面程序的输出是
(1)。
#include"stdio.h"voidmain()
{chara[40]="administrators",p;for(p=a;p!
='i';p++)putchar(p32);
}
参考答案:
全错0分
ADM错一个字母扣1分
12.下面程序的运行结果是
(2)。
{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分
13.下面程序的运行结果是(3)。
#include"stdio.h"
voidmain()
{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)。
#include"stdio.h"
inta[4]={1,2,3,4};
voidmain()
{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.有如下语句:
charA[]={"SWJTU"};该字符串的长度是(3),A[3]=(4)。
参考答案:
(3)5(4),T?
(允许无单引号和写ASCII码84)
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
你选择的答案:
[前面作业中已经做正确][正确]
正确答案:
B
解答参考:
2.C语言开始执行程序的开始执行点是
(A)程序中第一条可执行的语句
(B)程序中第一个函数
(C)程序中的main()函数
(D)包含文件中的第一个函数
你选择的答案:
[前面作业中已经做正确][正确]正确答案:
C
解答参考:
3.continue语句的作用是
(A)中止函数的执行
(B)立即中止循环
(C)中止本次循环,直接开始下一次循环
(D)从一个循环体直接跳转至另一个循环体内你选择的答案:
[前面作业中已经做正确][正确]正确答案:
C
解答参考:
4.有定义staticinta[]={1,2,3,4},*p;执行语句p=a+2;后,表达式*p的值为
(A)4
(B)1
(C)2
(D)3
你选择的答案:
[前面作业中已经做正确][正确]正确答案:
D
解答参考:
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);你选择的答案:
[前面作业中已经做正确][正确]正确答案:
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])
你选择的答案:
[前面作业中已经做正确][正确]正确答案:
B
解答参考:
7.
以下程序的输出结果是
#defineSQR(X)X*Xmain(){inta=16,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);printf("d\n",a);
}
(A)16
(B)2
(C)9
(D)1
你选择的答案:
[前面作业中已经做正确][正确]正确答案:
B
解答参考:
8.C语言中,形参与实参之间的数据传递方式是
(A)只能按值传递
(B)只能按地址传递
(C)由使用者指定传递方式
(D)既可以按值传递也可以按地址传递你选择的答案:
[前面作业中已经做正确][正确]正确答案:
A
解答参考:
则正确表达成员数组a的最后一个元素的
若有定义struct{inta[5];}b;地址表达式是
(A)b.a
(B)b.a[5]
(C)b.a+4
(D)&(&b>a[4])
你选择的答案:
[前面作业中已经做正确][正确]正确答案:
C
解答参考:
10.若有函数说明为voidf(doubles);则以下函数调用正确的是
(A)doublex;f(x);
(B)doublex;f(x);
(C)doublex;f(&x);
(D)intx;f(&x);你选择的答案:
C[正确]正确答案:
C解答参考:
(注意:
若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。
在线只需提交客
观题答案。
)
二、主观题(共16道小题)
11.下列程序段的输出是。
#include
voidmain()
{intk;
for(k=1;k<5;k++)
{
if(k%2)printf("*");elsecontinue;printf("#");
}
}
参考答案:
*#*#
12.下列程序段的输出是。
#include
intf(intx)
{staticy=1;
y++;
x+=y;
returnx;
}
voidmain()
{intk;
k=f(3);printf("%d,%d\n",k,f(k));
}
参考答案:
5,8
13.表达式!
!
356的值是。