|
【北京大学】03081002-计算机编程语言
试卷总分:100 得分:100
第1题,[单选题]声明变量类型为双精度浮点数的关键字为(教材第三章、课件第02节)
A:float
B:double
C:Float
Double
E:
正确资料:
第2题,[单选题]结构化程序的三种基本结构是()(教材第四至六章、课件第03-07节)
A:顺序结构、选择结构、循环结构
B:递归结构、循环结构、转移结构
C:嵌套结构、递归结构、顺序结构
D:循环结构、转移结构、顺序结构
E:
正确资料:
第3题,[单选题]设有int x=11;则表达式(x++*1/3)的值是()(教材第三章,课件第2-4节)
A:3
B:4
C:11
D:12
E:
正确资料:
第4题,[单选题]如果定义语句:int a[3][6];,按内存中存放顺序,数组a的第10个元素是()(教材第七章,课件第8-12节)
A:a[0][4]
B:a[1][4]
C:a[0][3]
D:a[1][3]
E:
正确资料:
第5题,[单选题]若有定义int c[ 9 ], *p = c; 则p + 5表示( )(教材第十章、课件第20-23节)
A:数组元素c[5]的地址
B:数组元素c[5]的值
C:数组元素c[6]的地址
D:数组元素c[6]的值
E:
正确资料:
第6题,[谋学网(www.mouxue.com)]<p class="MsoNormal">
<span>(知识点:教材3.2节、4.5节,课件02-07,课件第 19 节,教材第九章)<br />
</span>
</p>
<p class="MsoNormal">
<span>#include <stdio.h></span><b></b>
</p>
<p class="MsoNormal">
<span>int main()</span>
</p>
<p class="MsoNormal">
<span>{</span>
</p>
<p class="MsoNormal" style="text-indent:21.75pt;">
<span>int PI=3;</span>
</p>
<p class="MsoNormal" style="text-indent:21.75pt;">
<span>double r,h;</span>
</p>
<p class="MsoNormal">
<span>
scanf("%lf",&r);</span>
</p>
<p class="MsoNormal">
<span>
scanf("%lf",&h);</span>
</p>
<p class="MsoNormal">
<span> double
d,c,s,v;</span>
</p>
<p class="MsoNormal">
<span> d=PI*r*r;//</span>底面积<span> </span>
</p>
<p class="MsoNormal">
<span> c=2*PI*r*h;//</span>侧面积<span> </span>
</p>
<p class="MsoNormal">
<span> s=2*d+c; </span>
</p>
<p class="MsoNormal">
<span>
printf("%.4lf\n",s);</span>
</p>
<p class="MsoNormal">
<span> return 0;</span>
</p>
<p class="MsoNormal" style="text-indent:21.75pt;">
<span>}</span>
</p>
<p class="MsoNormal">
输入<span></span>
</p>
<p class="MsoNormal">
<span>3</span>
</p>
<p class="MsoNormal">
<span>3</span>
</p>
<p class="MsoNormal">
输出:<span>___</span>
</p>
<br />
正确资料:
第7题,[谋学网(www.mouxue.com)]<p class="MsoNormal">
<span>(课件第
13-16 节,教材第八章)<br />
</span>
</p>
<p class="MsoNormal">
<span>#include <stdio.h></span>
</p>
<p class="MsoNormal">
<span>int F(int x){</span>
</p>
<p class="MsoNormal">
<span>if(x==0||x==1)return 1;</span>
</p>
<p class="MsoNormal">
<span>else return F(x-1)*x;</span>
</p>
<p class="MsoNormal">
<span>}</span>
</p>
<p class="MsoNormal">
<span>int main(){</span>
</p>
<p class="MsoNormal">
<span>printf("%d\n",F(4));</span>
</p>
<p class="MsoNormal">
<span>return 0;</span>
</p>
<p class="MsoNormal">
<span>}</span>
</p>
<p class="MsoNormal">
<span> </span>
</p>
<p class="MsoNormal">
输出:<span>___</span>
</p>
正确资料:
第8题,[谋学网(www.mouxue.com)]<p class="MsoNormal">
<span> </span>
</p>
<p class="MsoNormal">
(知识点:课件第2节,教材第三章)
</p>
<p>
<br />
</p>
<p class="MsoNormal">
<span>#include <stdio.h></span><b></b>
</p>
<p class="MsoNormal">
<span>int main(){</span>
</p>
<p class="MsoNormal">
<span>int k=2;</span>
</p>
<p class="MsoNormal">
<span>int j=++k; </span>
</p>
<p class="MsoNormal">
<span>j=k++; </span>
</p>
<p class="MsoNormal">
<span>j=--k; </span>
</p>
<p class="MsoNormal">
<span>j=k--; </span>
</p>
<p class="MsoNormal">
<span>printf("%d\n",j);</span>
</p>
<p class="MsoNormal">
<span>}</span>
</p>
<p class="MsoNormal">
输出:<span>___</span>
</p>
正确资料:
第9题,[谋学网(www.mouxue.com)]<p class="MsoNormal">
(课件第2节,教材第三章)
</p>
<p class="MsoNormal">
(一)求<span>a+b</span>的和
</p>
<p class="MsoNormal">
<span>#include <stdio.h>//1</span>行<span></span>
</p>
<p class="MsoNormal">
<span>int main()</span>
</p>
<p class="MsoNormal">
<span>{</span>
</p>
<p class="MsoNormal">
<span>int a,b;</span>
</p>
<p class="MsoNormal">
<span>scanf("%d%d",&a,&b);//5</span>行<span></span>
</p>
<p class="MsoNormal">
<span>printf("%d\n,a+b");</span>
</p>
<p class="MsoNormal">
<span>return 0;</span>
</p>
<p class="MsoNormal">
<span>}</span>
</p>
请修改第<span>6</span>行:
正确资料:
第10题,[谋学网(www.mouxue.com)]<p class="MsoNormal">
(知识点:课件第<span>08-12</span>节,教材第七章,课件第<span> 20-23 </span>节,教材第十章)
</p>
<p class="MsoNormal">
(二)使用指针输出数组所有元素
</p>
<p class="MsoNormal">
<span>#include<stdio.h>//1</span>行<span></span>
</p>
<p class="MsoNormal">
<span>int main()</span>
</p>
<p class="MsoNormal">
<span>{int a[10];</span>
</p>
<p class="MsoNormal" style="text-indent:6.0pt;">
<span>int *p,i;</span>
</p>
<p class="MsoNormal" style="text-indent:6.0pt;">
<span>for(i=0;i<=10;i++)//5</span>行<span></span>
</p>
<p class="MsoNormal">
<span>
scanf("%d",&a[i]);</span>
</p>
<p class="MsoNormal" style="text-indent:6.0pt;">
<span>printf("\n");</span>
</p>
<p class="MsoNormal" style="text-indent:6.0pt;">
<span>for(p=a;p<(a+10);*p++)</span>
</p>
<p class="MsoNormal" style="text-indent:6.0pt;">
<span>printf("%d",*p);</span>
</p>
<p class="MsoNormal" style="text-indent:6.0pt;">
<span>return 0; //10</span>行<span></span>
</p>
<p class="MsoNormal">
<span> } </span>
</p>
<p class="MsoNormal">
请修改第<span>5</span>行:<span></span>
</p>
正确资料:
第11题,[谋学网(www.mouxue.com)]请修改第8行:
正确资料:
第12题,[谋学网(www.mouxue.com)]<p class="MsoNormal">
(三)
</p>
<p class="MsoNormal">
倒置字符串(课件第 13-16 节,教材第八章,课件第
19 节,教材第九章)<span></span>
</p>
<p class="MsoNormal">
<span>#define LEN 11;//1</span>行<span></span>
</p>
<p class="MsoNormal">
<span>#include<stdio.h></span>
</p>
<p class="MsoNormal">
<span>void inv(char x[],int n)</span>
</p>
<p class="MsoNormal">
<span>int main()</span>
</p>
<p class="MsoNormal">
<span>{//5</span>行<span></span>
</p>
<p class="MsoNormal">
<span> int i; </span>
</p>
<p class="MsoNormal">
<span> char
a[LEN]="abcDE12345";</span>
</p>
<p class="MsoNormal">
<span> inv(a,LEN-1);</span>
</p>
<p class="MsoNormal">
<span> for(i=0;i<LEN-1;i++)</span>
</p>
<p class="MsoNormal">
<span> printf("%c",a[i]);//10</span>行<span></span>
</p>
<p class="MsoNormal">
<span>} </span>
</p>
<p class="MsoNormal">
<span>void inv(char x[],int n)</span>
</p>
<p class="MsoNormal">
<span>{</span>
</p>
<p class="MsoNormal">
<span> int j,m=(n-1)/2;</span>
</p>
<p class="MsoNormal">
<span> for(int
i=0;i<=m;i++) //15</span>行<span></span>
</p>
<p class="MsoNormal">
<span> { </span>
</p>
<p class="MsoNormal">
<span> j=n-i;</span>
</p>
<p class="MsoNormal">
<span> char temp=x[i]; </span>
</p>
<p class="MsoNormal">
<span> x[i]=x[j];</span>
</p>
<p class="MsoNormal">
<span> x[j]=temp; //20</span>行<span></span>
</p>
<p class="MsoNormal">
<span> } </span>
</p>
<p class="MsoNormal">
<span> return;</span>
</p>
<p class="MsoNormal">
<span>}</span>
</p>
<p class="MsoNormal">
<span>12.</span>请修改第<span>1</span>行<span></span>
</p>
正确资料:
第13题,[谋学网(www.mouxue.com)]请修改第3行
正确资料:
第14题,[谋学网(www.mouxue.com)]请修改第17行
正确资料:
第15题,[问答题]<p class="MsoNormal">
(课件第<span>3-7</span>节,教材第四至六章,课件第<span>8-12</span>节,教材第七章)
</p>
<p class="MsoNormal">
统计字符串中字母和数字个数(本题共3处错误,请说明需要修改第几行并改正)<span></span>
</p>
<p class="MsoNormal">
<span>#include <stdio.h>//1</span>行 <span></span>
</p>
<p class="MsoNormal">
<span>#include <string.h></span>
</p>
<p class="MsoNormal">
<span>int main()</span>
</p>
<p class="MsoNormal">
<span>{</span>
</p>
<p class="MsoNormal">
<span> char
a[5000];//5</span>行 <span></span>
</p>
<p class="MsoNormal">
<span> gets(a);</span>
</p>
<p class="MsoNormal">
<span> int
alpha,number;</span>
</p>
<p class="MsoNormal">
<span> for(int
i=0;i<strlen(a);i++)</span>
</p>
<p class="MsoNormal">
<span> {</span>
</p>
<p class="MsoNormal">
<span> if(a[i]>='A'&&a[i]<='Z'&&a[i]>='a'&&a[i]<='z')//10</span>行 <span></span>
</p>
<p class="MsoNormal">
<span> alpha++;</span>
</p>
<p class="MsoNormal">
<span> else if(a[i]>=0&&a[i]<=9)</span>
</p>
<p class="MsoNormal">
<span> number++;</span>
</p>
<p class="MsoNormal">
<span> }</span>
</p>
<p class="MsoNormal">
<span> printf("%d\n",alpha);//15</span>行 <span></span>
</p>
<p class="MsoNormal">
<span>
printf("%d\n",number); </span>
</p>
<p class="MsoNormal">
<span> return 0;</span>
</p>
<p class="MsoNormal">
<span> }</span>
</p>
<p class="MsoNormal">
<span>}</span>
</p>
正确资料:
第16题,[问答题]<p class="MsoNormal">
交换<span>a</span>和<span>b</span>的值(课件第 13-16 节,教材第八章)<span style="color:#222222;font-family:宋体;font-size:13.2px;background-color:#FFFFFF;">(本题共3处错误,请说明需要修改第几行并改正)</span><span></span>
</p>
<p class="MsoNormal">
<span>#include <stdio.h>//1</span>行<span></span>
</p>
<p class="MsoNormal">
<span>void swap (int *a,int *b)</span>
</p>
<p class="MsoNormal">
<span>{</span>
</p>
<p class="MsoNormal">
<span> int *temp=*a;</span>
</p>
<p class="MsoNormal">
<span> *a=*b;//5</span>行<span></span>
</p>
<p class="MsoNormal">
<span> *b=temp;</span>
</p>
<p class="MsoNormal">
<span> return 0;</span>
</p>
<p class="MsoNormal">
<span>}</span>
</p>
<p class="MsoNormal">
<span>int main()</span>
</p>
<p class="MsoNormal">
<span>{//10</span>行<span></span>
</p>
<p class="MsoNormal">
<span> int a,b;</span>
</p>
<p class="MsoNormal">
<span> scanf("%d",&a);</span>
</p>
<p class="MsoNormal" style="margin-left:21.0pt;text-indent:21.0pt;">
<span>scanf("%d",&b);</span>
</p>
<p class="MsoNormal">
<span> swap(a,b)</span>
</p>
<p class="MsoNormal">
<span> printf("new
a=%d\n",a);//15</span>行<span></span>
</p>
<p class="MsoNormal" style="margin-left:21.0pt;text-indent:21.0pt;">
<span>printf("new
b=%d\n",b);</span>
</p>
<p class="MsoNormal">
<span> return 0;</span>
</p>
}
正确资料:
第17题,[谋学网(www.mouxue.com)]<p class="MsoNormal">
判断输入的数能否被<span>13</span>整除<span></span>
</p>
<p class="MsoNormal">
<span>#include <stdio.h> </span>
</p>
<p class="MsoNormal">
<span>int main()</span>
</p>
<p class="MsoNormal">
<span>{</span>
</p>
<p class="MsoNormal">
<span> </span><u> 1 </u><span>;</span>
</p>
<p class="MsoNormal" style="margin-left:21.0pt;text-indent:21.0pt;">
<span>scanf("%d",&n);</span>
</p>
<p class="MsoNormal">
<span> if(</span><u> 2 </u><span>)</span>
</p>
<p class="MsoNormal">
<span> printf("TRUE");</span>
</p>
<p class="MsoNormal">
<span> else</span>
</p>
<p class="MsoNormal">
<span> printf("FALSE");</span>
</p>
<p class="MsoNormal">
<span> return 0;</span>
</p>
<p class="MsoNormal">
<span>}</span>
</p>
17.第一空(横线1中应填写的内容)
正确资料:
第18题,[谋学网(www.mouxue.com)]第二空(横线2所应填写的内容)
正确资料:
第19题,[谋学网(www.mouxue.com)]<p class="MsoNormal">
输出<span>8</span>以内某个数的阶乘(课件第 03-07 节,教材第四至六章)<span></span>
</p>
<p class="MsoNormal">
<span>#include <stdio.h> </span>
</p>
<p class="MsoNormal">
<span>int main()</span>
</p>
<p class="MsoNormal">
<span>{</span>
</p>
<p class="MsoNormal">
<span> int n;</span>
</p>
<p class="MsoNormal">
<span>
scanf("%d",&n); </span>
</p>
<p class="MsoNormal" style="text-indent:30.0pt;">
<span>int s=1;</span>
</p>
<p class="MsoNormal" style="text-indent:30.0pt;">
<span>if(</span><u> 3 </u><span>){</span>
</p>
<p class="MsoNormal">
<span> for(int i=1;i<=n;i++)</span>
</p>
<p class="MsoNormal" style="text-indent:48.0pt;">
<span>{s=</span><u> 4 </u><span>;}</span>
</p>
<p class="MsoNormal" style="text-indent:30.0pt;">
<span>}//if</span>结束<span></span>
</p>
<p class="MsoNormal" style="text-indent:30.0pt;">
<span>else printf("the ans is too long");</span>
</p>
<p class="MsoNormal">
<span>
printf("%d\n",s);</span>
</p>
<p class="MsoNormal" style="text-indent:30.0pt;">
<span>return 0;</span>
</p>
<p class="MsoNormal">
<span> }</span>
</p>
19.第一空(横线3中应填写的内容)
正确资料:
第20题,[谋学网(www.mouxue.com)]第二空(横线4中应填写的内容):
正确资料:
第21题,[问答题]<p class="MsoNormal">
教务系统要录入某学期<span>n</span>位同学的“计算机编程语言”课程的成绩,请编写一段程序。请注意<b>使用要求的变量名称</b>。题目中只允许使用<span>#include
<stdio.h></span>和<span>#include <string.h></span>库中的函数。(课件第 17-18
节,教材第十一章)<span></span>
</p>
<p class="MsoNormal">
<span>21.</span>声明一个结构体<b><span>student</span></b>用来结构体存储每位同学的姓名(<b><span>name</span></b>)以及课程成绩(<b><span>grade</span></b>)。(姓名长度不超过<span>20</span>个字符<span>, </span>成绩的最大值为<span>100</span>)<span></span>
</p>
正确资料:
第22题,[问答题]<p class="MsoNormal">
使用<span>student</span>结构体定义一个该结构体(上一题中所定义的结构体)的实例变量<b><span>sheet</span></b>,并向其中输入数据。(数据条数不大于<span>10</span>条)<span></span>
</p>
<p class="MsoNormal">
<br />
</p>
<p class="MsoNormal">
【输入格式】<span></span>
</p>
<p class="MsoNormal">
第<span> 1 </span>行:一个整数<b><span>n</span></b>(<span>n<=10</span>),表示学生人数。<span></span>
</p>
<p class="MsoNormal">
接下来<span>n</span>行:每行一个字符串(字符串中无空格和数字,长度最大为<span>20</span>),表示学生姓名,然后一个空格,空格后为学生成绩(学生成绩为实数)<span></span>
</p>
<p class="MsoNormal">
【输入样例】<span> </span>
</p>
<p class="MsoNormal">
<span>3</span>
</p>
<p class="MsoNormal">
<span>Alice 99</span>
</p>
<p class="MsoNormal">
<span>Bob 88</span>
</p>
<p class="MsoNormal">
<span>Carol 77</span>
</p>
<p>
<br />
</p>
正确资料:
第23题,[问答题]<p class="MsoNormal">
在所定义结构体的基础上,假设结构体中已经存好数据,请计算该学期“计算机编程语言”课程的平均成绩并输出(变量名称:<b><span>ave</span></b>)。(保留一位小数,注意使用格式化输出方式)<span></span>
</p>
正确资料:
第24题,[问答题]<p class="MsoNormal">
在所定义结构体的基础上,假设结构体中已经存好数据,求最低分学生的姓名并输出。<span></span>
</p>
<p class="MsoNormal">
(注:本题中最低分只有一个,不需要考虑多人同时得最低分的情况)
</p>
正确资料:
|
|