08~09学年第一学期C程序设计B卷答案.doc_第1页
08~09学年第一学期C程序设计B卷答案.doc_第2页
08~09学年第一学期C程序设计B卷答案.doc_第3页
08~09学年第一学期C程序设计B卷答案.doc_第4页
08~09学年第一学期C程序设计B卷答案.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第 6 页 共 6 页领导审批并签名B 卷物理与电子工程学院 电子、物理 系 电子、物理 专业 学号 姓名 题号一二三四总分评卷人1234100分数30152268910评分一、 选择题(每题2分,共30分)下列每题A、B、C、D四个选项中,只有一个选项是正确的。1. 以下说法正确的是: ( C )A) C语言程序中是从第一个定义的函数开始执行B) 在C语言程序中,要调用的函数必须在main( )函数中定义C) C语言程序是从main( )函数开始执行D) C语言程序中的main( )函数必须放在程序的开始部分2. ( D )是合法的用户自定义标识符。A、 b-b B、float C、 D、 _isw 3. 若x是单精度实型变量,表达式 (x = 10/4) 的值是 ( B ) 。A、2.5 B、 2.0 C、 3 D、 24. 若变量已正确定义且 k 的值是 4,计算表达式 ( j = k- -) 后,( D )。A、j=3, k=3 B、j=3, k=4 C、j=4, k=4 D、j=4, k=35. 表达式 strlen(”hello”) 的值是 ( B )。A、 4 B、 5 C、 6 D、 76. 设变量定义为“int a, b;”,执行下列语句时,输入 ( D ),则a和b的值都是10。 scanf(a=%d, b=%d,&a, &b);A、10 10 B、10, 10 C、a=10 b=10 D、a=10, b=107. 假设定义:int x=3,y=3;则复合赋值表达式 x/=1+y的值为( A )。 A 0 B 0.75 C 6 D 以上都错8. 下列程序的输出结果是: ( A ) #include main()int a=0,b=0,c=0;if(a+0&b+0)+c;printf(“na=%d,b=%d,c=%d”,a,b,c);A. a=1,b=0,c=0 B. a=1,b=1,c=1C. a=1,b=0,c=1 D. a=0,b=1,c=19下列程序段执行后s值为( C )。 int i=1,s=0; do if (!(i%2) continue; s+=i; while (+ +i10);A 1 B 45 C 25 D 以上均不是10c定义为字符型常量,则下列语句中正确的为: ( C ) A. c=97 B. c=”97” C. c=97 D. c=”a”11. 数组定义为 int a 2=1, 2, 3, 4, 5, 6,数组元素( B )的值为6。 A、a32 B、a21 C、a12 D、a2312. 表达式strcmp(“China”, “Chinese”) 的值是一个( B )。 A、 正数 B、 负数 C、 0 D、 不确定的数13. 如下程序的输出结果是: ( B ) #include main( ) int x=0,a=0,b=0; switch(x) case 0:b+; case 1:a+; break; case 2:a+;b+;printf(“a=%d,b=%dn”,a,b);A. a=2,b=1 B. a=1,b=1 C. a=1,b=0 D. a=2,b=214. 若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是: ( C ) A(*p)max(a,b); B. * p max(a,b) C. (*p)(a,b); D. *p(a,b);15若已建立如图所示的单向链表结构,指针p,q分别指向如图所示的节点,则以下可以将q所指节点从链表中删除并释放该节点的语句组是: ( D ) 348 data nextheadp qA. free(q);p-next=q-next;B. q=q-next;p-next=q;p=p-next;free(p);C. q=(*q).next;(*p).next=q;free(q);D. (*p).next=(*q).next;free(q);二、 给出下列程序的运行结果(每题3分,共15分)1. 下列程序段的输出是( *#*# )。main() int k; for(k=1; k5; k+) if(k % 2) printf(*); else continue; printf(#); 2执行以下程序后,s的值为: ( 17 ) static int a=5,3,7,2,1,5,4,10;int s=0,k;for(k=0;k8;k+=2) s+=*(a+k);3. 写出下列程序段的输出结果。( 13,d ) char str=hellotworldn; printf(%d, %cn, sizeof(str), *(str+10);4 写出下列程序段的输出结果( 5 8 )。# include int f(int x) static y=1; y+; x += y; return x;void main() int k; k=f(3); printf(%d %dn, k, f(k);5写出下列程序段的输出结果( 0BC)。int k ; char *s = “ABC”; for( k=10; k != 0; k- ) ; printf ( %d, k );while( *s+ ) putchar( *s );三、程序填空题(每空2分,共22分)1. 求100200间的全部素数。main() int m,k,i,n=0; for(m=101;m=200;m+=2) if(n%10= =0) printf(n); k=sqrt(m); for(i= 2 ;i= k+1 ) printf(%d ,m);n+; printf(“n”);2以下函数实现字符串的复制,请填空。void copy_string(char *from,char *to)while(*to=*from)!=0) to+; from+ ;3下列程序调用swap函数交换a和b的值,并输出交换后的a和b的值。程序的输出结果是:After swap 5, 3。void main() int a, b; a = 3, b = 5; swap( &a, &b ) ; printf(After swap %d, %d, a, b);swap( int *x, int *y ) int t; t=*x ; *x=*y ; *y=t ;4将输入的 n 个字符串连接成1个字符串 , 然后输出该字符串.#include #include void main() char str1020, string200; int k, n; scanf(%d, &n); for (k=0; kn; k+) gets(strk); strcpy( string,str0 ) ; for (k=1; kn; k+) strcat(string,strk); puts(string);四、编程题(共33分)1 输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身例如,153是一水仙花数,因为153135333。(8分)#include main() int i,j,k,n; for (n=100;n1000;n+) i=n/100; j=n/10-i*10; k=n%10; if (n=i*i*i+j*j*j+k*k*k) printf(%4d,n); printf(n);2将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1。要求改为1,4,5,6,8。(8分)。#define N 10main() int aN,i,temp; printf(nplease input the array:); for (i=0;iN;i+) scanf(%d,&ai); printf(nthe old array is :); for (i=0;iN;i+) printf(%d ,ai); for (i=0;iN/2;i+) temp=aN-i-1; aN-i-1=ai; ai=temp; printf(n the new array is :); for (i=0;iN;i+) printf(%d ,ai);3. 写一函数,将二维数组a中每个元素向右移一列,最右一列换到最左一列。要求在main函数中输入a数组的初始数组元素值以及改变之后的a数组的数组元素的值(8分)。例如:数组a: 数组b:4 5 66 4 51 2 3 3 1 2#define N 2#define M 3main() int bNM,aNM=4,5,6,1,2,3; int i,j; printf(n); for (i=0;iN;i+) for (j=0;jM;j+)printf(%5d,aij); printf(n); for (i=0;iN;i+) bi0=aiM-1; for (j=0;jM;j+) bij+1=aij; 4编写一个程序,其功能是将用户输入的十六进制数字的字符串转换成与它等价的十进制整数值,如输入的字符串为“12f”,转换为等价的十进制整数值为303。其中十六进制允许的字符是从09和a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论