西南交大高级语言程序的设计客观题5.docx
《西南交大高级语言程序的设计客观题5.docx》由会员分享,可在线阅读,更多相关《西南交大高级语言程序的设计客观题5.docx(15页珍藏版)》请在冰豆网上搜索。
西南交大高级语言程序的设计客观题5
一、单项选择题(只有一个选项正确,共16道小题)
1. 以下正确的C标识符是
(A) 0XH
(B) _80
(C) main#
(D) A
你选择的答案:
B [正确]
正确答案:
B
解答参考:
2. C语言表示逻辑假的方法是
(A) FALSE
(B) 0
(C) 1
(D) NULL
你选择的答案:
B [正确]
正确答案:
B
解答参考:
3. 能正确表达逻辑关系"a≥10"或"a≤0"的C语言表达式是
(A) a>=10ora<=0
(B) a>=0|a<=10
(C) a>=10&&a<=0
(D) a>=10||a<=0
你选择的答案:
D [正确]
正确答案:
D
解答参考:
4.
设a是int型变量,b是float型变量,用下面的语句给这两个变量输入值
scanf("a=%d,b=%f",&a,&b);
为了把100和76.5分别赋给i和f,则正确的输入为:
(A) 100 76.5
(B) a=100,b=76.5
(C) 10076.5
(D) a=100b=76.5
你选择的答案:
B [正确]
正确答案:
B
解答参考:
5.
若有如下说明 。
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 [正确]
正确答案:
C
解答参考:
6. 若有定义:
int a[10], *p=a;,则p+5表示
(A) 元素a[5]的地址
(B) 元素a[5]的值
(C) 元素a[6]的地址
(D) 元素a[6]的值
你选择的答案:
A [正确]
正确答案:
A
解答参考:
7. 以下可作为函数fopen中第一个参数的正确格式是
(A) c:
user\text.tex
(B) c:
\user\text.txt
(C) “c:
user\text.tex”
(D) “c:
\\user\\text.txt”
你选择的答案:
D [正确]
正确答案:
D
解答参考:
8.
以下函数返回a所指数组中最小值元素的下标值
fun(int*a,intn)
{inti,j=0,p;
p=j;
for(i=j;i
if(a[i]
return(p);
}
在下划线处应填入的是 。
(A) i=p
(B) a[p]=a[i]
(C) p=j
(D) p=i
你选择的答案:
D [正确]
正确答案:
D
解答参考:
9. 在C语言中,能代表逻辑“真”的是____。
(A) true
(B) 大于0的数
(C) 非0的整数
(D) 非0的数
你选择的答案:
D [正确]
正确答案:
D
解答参考:
10. 若有定义和语句:
inta=10,b=20,*p=&a,**pp=&p;p=&b;printf("%d%d\n",*p,**pp);,则输出结果是____。
(A) 10,20
(B) 10,10
(C) 20,10
(D) 20,20
你选择的答案:
D [正确]
正确答案:
D
解答参考:
11.
若有定义 struct{inta[5];}b; 则正确表达成员数组a的最后一个元素的地址表达式是
。
(A) b.a
(B) b.a[5]
(C) b.a+4
(D) &(&b>a[4])
你选择的答案:
C [正确]
正确答案:
C
解答参考:
12. 为改写磁盘文件中的数据,文件打开方式串正确的是 。
(A) "ab+"
(B) "rb"
(C) "wb+"
(D) "rb+"
你选择的答案:
D [正确]
正确答案:
D
解答参考:
13. 若有定义inta[3][4]; 以下 是对该数组元素的错误引用。
(A) a[3][2]
(B) (a[1]+2)
(C) ((a+2)+3)
(D) (a+1)
你选择的答案:
A [正确]
正确答案:
A
解答参考:
14. 若变量已有正确定义,程序 a=0;for(i=1;i<=n;i++)for(j=0;j<=i;j++)a++; 执行后,变量a的值是 (3) 。
(A) n(n+1)/2
(B) (n+1)(n+2)/2
(C) n(n-1)/2
(D) n(n+3)/2
你选择的答案:
D [正确]
正确答案:
D
解答参考:
15. 改写磁盘文件中的数据,文件打开方式正确的是 (12) 。
(A) "ab+"
(B) "rb+"
(C) "wb+"
(D) "rb"
你选择的答案:
A [正确]
正确答案:
A
解答参考:
16. 若有函数说明为 voidf(double s); 则以下函数调用正确的是 (14) 。
(A) doublex;f(x);
(B) doublex;f(x);
(C) doublex;f(&x);
(D) intx;f(&x);
你选择的答案:
C [正确]
正确答案:
C
解答参考:
二、判断题(判断正误,共5道小题)
17. 从键盘输入数据时,整型变量只能输入整型数值,实型变量只能输入实型数值。
你选择的答案:
说法错误 [正确]
正确答案:
说法错误
解答参考:
18. while
(1)break; 不是死循环。
你选择的答案:
说确 [正确]
正确答案:
说确
解答参考:
19. 枚举类型定义中的枚举标识符有次序关系,能够进行比较大小的运算。
你选择的答案:
说确 [正确]
正确答案:
说确
解答参考:
20. 若变量已有正确定义,且num=sum=7;则执行表达式sum=num++,sum++,++num后sum的值为7.
你选择的答案:
说法错误 [正确]
正确答案:
说法错误
解答参考:
21.
若已定义inta=5;下面对两个语句
(1)int*p=&a;和
(2) *p=a;的解释是:
语句
(1)和
(2)
中的*p含义相同,都表示给指针变量p赋值
你选择的答案:
说法错误 [正确]
正确答案:
说法错误
解答参考:
(注意:
若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。
在线只需提交客观题答案。
)
三、主观题(共11道小题)
22.
main()
{intx=2,y=-1,z=2;
if(x
if(y<0)z=0;
elsez+=1;
printf(“%d\n”,z);
}
写出程序输出结果
(1) 。
参考答案:
2
23. 下面程序的运行结果是
(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分
24. #include ”stdio.h”
void main()
{chara[61],*s;intn;
gets(a);
for(s=a;*s;s++)if(*s>=’A’ &&*s<=’Z’)*s+=32;
puts(a);
}
若程序的输入为SWJTU,则输出结果为 (3) 。
参考答案:
swjtu
25. #include“stdio.h”
#define N 5
intswap(int*p,int*q)
{int t;
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;m
f(a,N-1);
for(m=0;m
}
若程序的输入为89234, 则输出结果为 (4) 。
参考答案:
43298
26. 下面程序的功能是输出100至1000以的素数,请填空使之完善。
#include
(1)
main()
{intm,k,j;
for(m=100;m<=1000;m++)
{k=sqrt(m);
for(j=2;
(2) ;j++)
if(m%j (3) 0)break;
if( (4) )printf(“%5d”,m);
}
}
参考答案:
(1) “math.h”
(2) j<=k (3) == (4) j>k 或j>=k+1
27. 下面程序的功能是统计字符文件a.txt中有多少个空格,请填空使之完善。
#include"stdio.h"
main( )
{FILE*fp;charch;intn= (5) ;
if(!
(fp=fopen(“a.txt”, (6) ))){printf(Fileopencorrect!
\n");exit(0);}
while( (7) ))
{ch=fputc(fp);if(feof(p1))break;
if( (8) n++;
}
printf("n=%d\n",n);
fclose(fp);
}
}
参考答案:
(5) 0 (6) ”r” (7) feof(fp) (8) ch==’ ’
28. 有如下语句:
char A[]={"SWJTU"}; 该字符串的长度是 (3) ,A[3]= (4) 。
参考答案:
(3) 5 (4) ‘T’(允许无单引号和写ASCII码84)
29. 若有定义intx=5,n=5;则执行语句 x+=n++; 后,x的值= (5) ,n的值= (6) 。
参考答案:
(5) 10 (6) 6
30. 若有inta=2,b=1,c=0; 执行语句c=a++-b--;后,变量c的值为 (14) b的值 (15)
参考答案:
(14) 1 (15) 0
31. 编程打印如下图形到屏幕上。
(9分)
*
***
*****
*******
*********
要求打印行数由键盘输入。
参考答案:
#include /* 程序结构正确2分 */
voidmain()
{intn,i,j;
scanf(“%d”,&n); /* 正确输入行数1分 */
for(i=1;i<=n;i++) /* 外循环控制正确 1分 */
{printf(“%*s”,n-i,“”); /* 正确输出前导空格2分 */
for(j=1;j<=2*i-1;j++)putchar(‘*’); /* 正确输出星号2分 */
printf(“\n”); /* 正确换行 1分 */
}
}
32. 定义两个N个元素的整型数组,要求用初始化方法给这两个N元数组提供初值,要求每个数组中的元素初值各不相同但两个数组之间允许有相同的元素。
如果把这两个数组视为两个整数集合,编写程序,按由小到大次序输出这两个集合的交集中的元素。
如果交集为空则输出nocommonelements. (10分)
(提示:
N用 #define定义,N不要太大,取6~8即可; 对提取的公共元素需要进行由小到大排序,最好的解决方法是插入排序,即选出一个公共元素则插入,选完则插入排序完成;本题并不限定使用插入排序)
例如:
inta[N]={-3,9,7,10,12,-8,5,-4},b[N]={8,10,-4,5,0,-8,13,6};
则程序输出应为:
-8 -4 5 10
参考答案:
#include /* 程序结构正确1分 */
#define N8
void main() /* 正确定义和初始化数组a,b1分 */
{ int a[N]={-3,9,7,10,12,-8,5,-4},b[N]={8,10,-4,5,0,-8,13,6};
int c[N],k=0,j,m,n; /* 正确定义和初始化其它需要的变量 1分 */
for(m=0;m for(n=0;n
if(a[m]==b[n]) /* 正确排序 2分*/
{j=k-1;
while(j>=0&&a[m]
c[j+1]=a[m];k++;break;
}
if(k>0) for(m=0;m /*正确输出2分*/
else printf("nocommonelements");
printf("\n");
}