《高级语言程序设计(C)》期末考试 综合大作业

一、选择题(每小题 2 分,共 40 分)

1、表示关系 x≤y≤z 的 c 语言表达式为
A.(X<=Y)&&(Y<=Z)
B.(X<=Y)AND(Y<=Z)
C.(X<=Y<=Z)
D.(X<=Y)&(Y<=Z)

2、以下程序的输出结果是int a=12,b=12;
printf(“%d %d\n”,–a,++b);
A.10 10
B.12 12
C.11 10
D.11 13

3、以下的 for 循环
for(x=0,y=0; (y!=123)&&(x<4); x + + );
A.是无限循环
B.循环次数不定
C.执行 4 次
D.执行 3 次

4、有以下程序
char a[]=“programming”,b[]=“language”;

char p1,p2; int i; p1=a;p2=b; for(i=0;i<7;i++)
if(
(p1+i)==
(p2+i)) printf(“%c”,*(p1+i));
输出结果是
A.gm
B.rg
C.or
D.ga

5、以下说法中正确的是
A.#define 和 printf 都是 C 语句
B.#define 是 C 语句,printf 不是
C. printf 是 C 语句,#define 不是
D. #define 和 printf 都不是 C 语句

6、下面的程序int x=3; do
{
printf(“%d\n”,X-=2);
} while(!(–x));
A.输出的是 1
B.输出的是 1 和-2
C.输出的是 3 和 0
D.是死循环

7、下面能正确进行字符串赋值操作的语句是
A.char s[5]={“ABCDE”};
B.char s[5]={‘A’、‘B’、‘C’、‘D’、‘E’};
C.char *s;s=“ABCDEF”;
D.char *s; scanf(“%s”,s);

8、以下程序的输出结果是
int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1]; for(i=0;i<4;i+=2)printf("%d ",p[i]);
A.5 2
B.5 1
C.5 3
D.9 7

9、若要求在 if 后一对圆括号中表示 a 不等于 0 的关系,则能正确表示这一关系的表达式为
A. a<>0
B.!a
C.a=0
D.a

10、下述对 C 语言字符数组的描述中错误的是
A.字符数组可以存放字符串
B. 字符数组中的字符串可以整体输入、输出
C. 可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D.不可以用关系运算符对字符数组中的字符串进行比较

11、若 fp 是指向某文件的指针,且已读到该文件的末尾,则 C 语言函数 feof(fp)的返回值是
A.EOF
B.-1
C.非零值
D.NULL

12、设 p1 和 p2 是指向同一个 int 型一维数组的指针变量,k 为 int 型变量,则不能正确执行的语句是
A.k=*p1+*p2;
B.p2=k;
C.p1=p2;
D.k=*p1 *(*p2);

13、下面程序的输出是
int a=-1, b=4,k; k=(a++<=0)&&(!(b–<=0));
printf(“%d %d %d\n”,k,a,b);
A.0 0 3
B.0 1 2
C.1 0 3
D.1 1 2

14、若 x 是整型变量,pb 是基类型为整型的指针变量,则正确的赋值表达式是
A.pb=&x
B.pb=x;
C.*pb=&x;
D.*pb=*x

15、设有 static char str[ ]=“Beijing”;
则执行语句 printf(“%d\n”, strlen(strcpy(str,“China”)))后的输出结果为
A.5
B.7
C.12
D.14

16、以下程序的输出结果是int x=10,y=10,I; for(i=0;x>8;y=++i)
printf("%d,%d ",x–,y);
A.10 1 9 2
B.9 8 7 6
C.10 9 9 0
D.10 10 9 1

17、设有如下函数定义: int f(char *s)
{
char *p=s; while(*p!=‘\0’) p++; return(p-s);
}
如果在主程序中用下面的语句调用上述函数,则输出结果为
printf(“%d\n”,f(“goodbey!”));
A.3
B.6
C.8
D.0

18、若执行下面的程序时从键盘上输入 3 和 4,则输出是int main()
{
int a,b,s;
scanf(“%d %d”,&a,&b); s=a;
if(a<b)s=b; s=s*s; printf(“%d\n”,s);
}
A.14
B.16
C.18
D.20

19、下面四个选项中,均是 C 语言关键字的是:
A.auto enum include
B.swith typedef continue
C.signed union scanf
D.if struct type

20、有以下程序
viod fun (int a,int b,int c)
{a=456;b=567;c=678;}
int main()
{
int x=10,y=20,z=30; fun (x,y,z);
printf(“%d,%d.%d”,x,y,z); return 0;
}
输出结果是
A.30,20,10
B.10,20,30
C.456,567,678
D.678,567,456

二、判断题(每小题 3 分,判断对错占 1 分,给出解析占 2 分,共 21 分)

1、在 C 中,外部变量的隐含类别是自动存储类别。
2、实参和与其对应的形参共占用一个存储单元。
3、在不得已的情况下(例如提高程序运行效率),才使用 goto 语句。
4、条件表达式可以取代 if 语句,或者用 if 语句取代条件表达式。
5、函数中的静态变量在函数每次调用时,都会重新设置初值。
6、全局变量都是静态存储。
7、如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数不必再做函数原型声明。

三、程序分析题(每空 0.5 分,共 19 分)

要求:读程序,填出表格中的数据。
1 、(10 空)

char fun(char	ch){
	if(ch= ='Z'ch= 'A';
	else if(ch>='A'&& ch<='Y'ch=ch+1; 
		return	ch;
}
输入 chaAbBD@3YZ
返回 ch

2、(15 空)

void sstrcpy(char *s,char *t){
	while(*s!=\0){
		*s= *t;s
		++; t++;
	}
	*s=0;
}
int main( ){
	char str1[100],str2[]="abcdefgh"; 
	sstrcpy(str1,str2); 
	printf("%s\n",str1);
	return 0}
下标012345678
*ta
str1[]0

3、(13 空)
从键盘上输入 1298

int n1,n2; scanf("%d",&n2); 
while(n2!=0)//(1){
	n1=n2%10; //(2)
	n2=n2/10; //(3) 
	printf("%d",n1);
}
(1)n21298
(2)n1/
(3)n2/
程序输出
四、程序设计题(每小题 10 分,共 20 分)

编程题要求:
(1) 先给出伪代码,然后再写出源码,重要变量和语句要加注释;
(2) 若有子函数,则要给出函数框架设计(函数名、形参、返回类型)。
1、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153 是一个“水仙花数”,因为 153=1 的三次方+5 的三次方+3 的三次方。

2、编写函数 fun,函数的功能是:在字符串中所有数字字符前加一个$字符。例如,输入:A1B23CD45,则输出为:A$1B$2$3CD$4$5。

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_70752559

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值