sa文档格式.docx
- 文档编号:21730879
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:11
- 大小:35.52KB
sa文档格式.docx
《sa文档格式.docx》由会员分享,可在线阅读,更多相关《sa文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
charname[20];
charsex;
charprofession[20];
union
{
intsingleAge;
struct
charspouseName[20];
intchildren;
}married;
intyear;
intmonth;
intdate;
}divorcedDay;
}marital;
intmarryFlag;
};
2.C语言中构造数据类型包括数组、结构体、共用体。
3.C语言中用_0__表示逻辑值“假”,用_非0_表示逻辑值“真”。
4.char*p[10];
这条语句的含义是含有10个元素的指针数组p,它的每一个元素都是一个字符指针,可以指向一个字符串。
二、判断下列问题描述正确与否,正确的打“√”,错误的打“×
”。
(4分,每题1分)
1.如果在程序中定义静态变量和全局变量时,未明确指明其初始值,那么它们可以在程序编译阶段自动被初始化为0值。
(√)
2.在C语言中,可以用typedef定义一种新的数据类型。
(×
)
3.在C语言中,实参与其对应的形参各占独立的存储单元。
(√)
4.在C语言中,函数的定义可以嵌套。
)
三、选择题:
(10分,每题2分)
1.若用数组名作为函数调用时的实参,则实际上传递给形参的是(A)。
A.数组的首地址B.数组的第一个元素值
C.数组中全部元素的值D.数组元素的个数
2.判断两个字符串s1和s2相等,应当使用(C)。
A.if(s1==s2)B.if(s1=s2)
C.if(!
strcmp(s1,s2))D.if(strcmp(s1,s2))
3.在while(x)语句中的x与下面条件表达式等价的是:
A。
A.x!
=0B.x==1C.x!
=1D.x==0
4.二维数组a有m行n列,则在a[i][j]之前的元素个数为(B)。
A.j*n+iB.i*n+jC.i*n+j-1D.i*n+j+1
5.设有声明语句:
inta=1,b=0;
则执行以下语句后输出为:
B。
switch(a)
{
case1:
switch(b)
{
case0:
printf("
**0**"
);
break;
case1:
**1**"
}
case2:
**2**"
}
A)**0**B)**0****2**
C)**0****1****2**D)有语法错误
四、写出下列程序的运行结果。
(6分,每题3分)
1.#include<
stdio.h>
voidFun(int*y)
*y=%d\n"
*y);
*y=20;
printf("
main()
intx=10;
x=%d\n"
x);
Fun(&
x);
运行结果是:
x=10
*y=10
*y=20
x=20
2.#include<
intFun(intx)
staticinty=0;
y+=x;
returny;
}
main()
intx=10,y=0,k;
for(k=0;
k<
2;
k++)
y=Fun(x);
y=%d\n"
y);
y=10
y=20
3.#include<
main()
chara[]="
programming"
b[]="
language"
;
char*p1,*p2;
inti;
p1=a;
p2=b;
for(i=0;
i<
7;
i++)
{
if(*(p1+i)==*(p2+i))
printf("
%c"
*(p1+i));
}
printf("
\n"
ga
五、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。
(10分,每空2分)
1.下面这个程序用于读入5个整数,当程序读入的数据为正整数时,则显示该数,否则,不显示。
读入5个数据后,程序结束运行。
#include<
inti,n;
for(i=1;
=5;
Pleaseentern:
"
scanf("
%d"
&
n);
if(n<
=0)____continue___;
n=%d\n"
n);
Programisover!
2.韩信点兵。
韩信有一队兵,他想知道有多少人,便让士兵排队报数:
按从1至5报数,最末一个士兵报的数为1;
按从1至6报数,最末一个士兵报的数为5;
按从1至7报数,最末一个士兵报的数为4;
最后再按从1至11报数,最末一个士兵报的数为10。
下面程序的主要功能是计算韩信至少有多少兵。
intx=1;
intfind=0;
for(x=1;
_!
flag__;
x++)
if(x%5==1&
&
x%6==5&
x%7==4&
x%11==10)
printf("
x=%d\n"
__flag=1___;
}
}
3.下面程序是计算字符串中实际字符的个数,即实现和字符串处理函数strlen相同的功能。
unsignedintMyStrlen(charstr[])
unsignedintlen=0,i;
for(i=0;
str[i]!
='
\0'
len++;
returnlen;
六、在下面这个程序中,要求其实现的功能是对用户输入的任意整数计算其阶乘,输入小于等于-1的数时退出程序。
下面给出的是一个有错误的程序,请找出其中的错误,并改正之。
(10分)
#defineEND-1;
//错误,改成:
#defineEND-1//(1分)
longFactorial(intx);
intx;
while
(1);
//错误,改成:
while
(1)//(1分)
inputx:
//(1分)
scanf("
//(1分)
if(x<
=END)
break//错误,改成:
else
%d!
=%d\n"
x,Factorial(x));
=%ld\n"
longFactorial(intx)
inti;
intresult;
longresult=1;
//(2分)
for(i=1,i<
=x,i++)//错误,改成:
for(i=1;
=x;
i++)//(1分)
result*=i;
//错误,改成:
returnresult;
七、编程(40分,第1和2小题各10分,第3小题20分)
1.编程计算1!
+2!
+3!
+……+10!
的值。
参考答案1:
longterm=1,sum=0;
for(i=1;
i<
=10;
term=term*i;
sum=sum+term;
1!
+...+10!
=%ld\n"
sum);
参考答案2:
longterm,sum=0;
inti,j;
term=1;
for(j=1;
j<
=i;
j++)
term=term*j;
+…+10!
2.从键盘任意输入10个不相同的整数,然后,输入要查找的数x,如果在这10个数中找到x,则打印“Found!
”;
如果找不到,则打印“Notfound!
inti,a[10],flag=0;
10;
&
a[i]);
for(i=0;
if(a[i]==x)
flag=1;
if(flag)
Found!
else
Notfound!
3.从键盘任意输入某班20个学生的成绩,打印最高分,并统计不及格学生的人数。
inti,score[20],max,count;
20;
score[i]);
max=score[0];
if(score[i]>
max)
max=score[i];
max=%d\n"
max);
count=0;
if(score[i]<
60)
count++;
count=%d\n"
count);
count=0;
if(score[i]<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sa