本文内容列表:
大学学习资料免费下载网站上线了
其他公共课程论坛
类似标题的留言:陈东方C语言编程基础实验及问题解答(答案)
中国校企网络技术联盟
大学学习资料免费下载网站有类似资料
其他公共课程部分
题目:陈东方的C语言编程基础实验及问题解答(答案)
中国物联网校企联盟技术部
当c=A时,switch括号中的c++后面是c=B,所以执行case B,k--after k=-1。由于后面没有break,所以继续case C.k+=2=1,然后break跳出。切换,继续k++,然后k=2。使用printf输出时,c-1后输出为A,k仍为2,
在while括号内进行cF判断,直到不满足为止!
这道题应该是谭浩强教授的《C语言程序设计(第四版)》第三章第五题:
的工作原理如下:
或
1.判断题(每题1分,共15分)
1. 在标准C中,只有数值数据可以进行4种混合运算。
2. 在标准 C 中,_a 是合法的自定义标识符。
3.有一个定义:float f;表达式f+=(int)3.6%2”不符合C语言语法。
4. 在标准C中,逻辑运算的结果只有1,表示满足条件,结果为0,表示不满足条件。
6. 以下运算符按优先级从高到低排列:‘’、‘!’、‘==’、‘-’。
7. (;;); 的语句是非法的。
8、一个C语言程序可以由多个源文件组成,每个源文件可以有自己的main()函数。
9. while 和 do-while 的主要区别在于后者至少无条件执行一次。
10、数组名代表数组的首地址,是一个常量,所以将实参组名代表的地址传递给形参组名是错误的。
11. 当函数没有返回值类型时,表示该函数类型为void。
12、C语言中,指针变量作为函数参数时,不采用单向传值。
13. 函数中只允许有一个return 语句。
14、C语言中,如果不指定变量的存储类型,则为auto类型。
15、由于指针存储的地址都是整数,所以整型指针和浮点型指针可以互相赋值。
2.填空(每空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+cb==c的值为: (3);
假设x=2.5,a=7,y=4.7,则表达式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[ ]={"法国", "中国", "俄罗斯", "美国"};然后语句 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)。
3.简答题(每题4分,共12分)
1. 简述选择语句if、else语句对与switch语句的区别。
2. 简述循环语句中break 和 continue 的区别。
3. 如果 int a[5], *p=a;简要描述*p++和(*p)++之间的区别。
4. 以下程序各有 2 个错误。指出错误的说法并写出对应的正确说法(每题4分,共16分)
?6.阅读下列程序,写出运算结果(第一题4分,第二题6分,共10分)
7.编程题(8分)
编写一个程序,其功能是比较字符串的大小(不允许使用系统提供的字符串比较函数strcmp)。要求是:
(1) 这是通过从主函数调用函数 strcompare 来实现的。
(2) 需要使用函数strcompare来比较两个字符:如果第一个字符小于第二个字符,则返回负值;如果第一个字符小于第二个字符,则返回负值;如果两个字符相等,则返回 0 值;如果第一个字符大于第二个字符,则返回正值。
(3) 输出两个字符串中相同部分的子串。
《C语言程序设计基础》试卷参考答案
1.判断题(每题1分,共15分)
1~5; 6~10; 11~15
2.填空(每空1分,共15分)
(1) 6 (2) 1 (3) 1 (4) 2.5 (5) 24 (6) 6
(7) 地址 (8) 行指针,指向一个有四个元素的一维数组
(9) 指针数组名。数组有四个元素,每个元素都是一个指针
(10) 俄罗斯 (11) i (12) h (13) %c (14) %d (15) 7
3.简答题(每题4分,共12分)
1. ifalways 判断其后面的表达式的值是否非零。如果非零,则执行其后面的语句或 {} 括起来的复合语句。否则,将执行 else 后面的语句。 switch语句根据其后面表达式的数值进行判断,并执行switch语句体中case:constant value equal语句之一后面的语句。执行完break语句后,跳出switch语句体。
2.break是终止整个循环过程; continue 是终止这个循环。
3. *p++先取a[0]的值,然后p指向a[1]; (*p)++ 使 a[0] 的值增加 1,但 p 保持不变。
4. 以下程序各有 2 个错误。指出错误的说法并写出对应的正确说法(每题4分,共16分)
1. (1)#include 缺失; (2) scanf(“%f”,a);改为 scanf(“%f”,a);
2. (1) 缺失和=0; (2) for(i=1; i=3; i++) 改为 for(i=0;i3;i++)
3. (1) p1=p2 改为 *p1=*p2 (2) swap(a, *p) 改为 swap(a, p)
4. (1) 添加 else if(m==0) a=1; (2)添加return(a);
if(m0) 语句之后 ?1. (1) x=0; (2) if(n==x) (3) s++;或s=s+1;
2. (4) num[i] (5) 最大num[i]? (6) num[i]!=0
3. (7) n-i-1 (8) a[j]a[j+1] (9) a[j+1]=温度
4. (10) 计数=0; (11) n%10 (12) n0 或 n!=0 或 n
6.阅读下列程序,写出运算结果(第一题4分,第二题6分,共10分)
1.#*#*#*
2. 主要 i=1 j=2 k=2
子 i=1 j=2 k=1 x=2
子 i=1 j=2 k=1 x=3
7.编程题(8分)
#include
main()
{
int i,j, flag=0;
字符 str1[90],str2[90];
获取(str1);
获取(str2);
i=0;
做{
flag=strcompare(str1[i],str2[i]);
i++;
}while(str1[i]!='' str2[i]!='' flag=0);
if(flag0)printf(“%s 小于 %s ”,str1,str2);
else if(flag==0) printf(“%s 等于 %s ”,str1,str2);
else printf(“%s 大于 %s ”,str1,str2);
printf("两个字符串中相同的字符串是:");
j=0;
我——;最后三句可以是str1[i]=’’; printf(“%s”, str1);也可以使用 //str2 来代替。
while(ji){printf(“%c”,str1[i]);j++;} span="" /i){printf(“%c”,str1[i]);j++;}
}
int strcompare(char c1,char c2)
{
int v;
v=c1-c2;
返回v;
}