C语言程序设计试题2010A.doc_第1页
C语言程序设计试题2010A.doc_第2页
C语言程序设计试题2010A.doc_第3页
C语言程序设计试题2010A.doc_第4页
C语言程序设计试题2010A.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

课程编号:COM07003 北京理工大学2009-2010学年第一学期C语言程序设计试题试题A卷一、单项选择题第 6 页 共 6 页Question 1 分数: 2 已知int a68,i = 2, j = 6; 则下面能够正确引用元素 aij 的是【 】A. *( *( a + i ) + j ) B. *( a + j * n + i ) C. *( a + i * n + j ) D. *( *a + i ) + j Question 2 分数: 2 以下描述中,错误的是【 C 】 A. 在定义函数时需要使用形参,必须指定形参的数据类型 B. 数组名可以作为参数进行传递 C. 在说明自动变量的时候,就要为其分配存贮单元 D. 被调函数执行结束后,形参占用的内存空间被释放 Question 3 分数: 2 已知:int x = 2,y = 3;则 x & y 的结果是【 A 】 A. 2 B. 0 C. 3 D. 5 Question 4 分数: 2 已知int a;以下选项中不能确定 a 的取值范围的表达式是【 B 】 A. a = 11| a = 12 | a = 13 | a = 14 B. 10 a 10 & a 15 D. ! ( a = 15 ) Question 5 分数: 2 一个 C 程序的执行是从【 D 】 A. 第一个函数开始,最后一个函数结束 B. main()函数开始,直到最后一个函数 C. 第一个语句开始,最后一个语句结束 D. main()函数开始,直到main()函数结束 Question 6 分数: 2 已知:int a20,*p = a;那么元素 a i 的地址为【 C 】 A. p + i * 2 B. p + ( i - 1 ) C. p + i D. p + ( i - 1 ) * 2 Question 7 分数: 2 以下描述中,正确的是【 B 】 A. 在循环体内使用 break 语句或 continue 语句的作用相同 B. 只能在循环体内和 switch 语句体内使用 break 语句 C. 从多层循环嵌套中退出时, 只能使用 goto 语句 D. continue 语句的作用是结束整个循环的执行 Question 8 分数: 2 对于静态存储类型的变量与动态存储类型的变量,下述说法错误的是【 D 】 A. 它们的生存期(即变量值在内存中被保存的期限)不一样 B. 它们的可见性(即变量的作用域)不一样 C. 根据定义变量的位置来决定它们的存储类型 D. 外部变量都是静态存储类型的变量 Question 9 分数: 2 对于for( s = 2; ;s+ )可以理解为【 D 】 A. for( s = 2;0 ;s+ ) B. for( s = 2;s 2;s+ ) D. for( s = 2;1 ;s+ ) Question 10 分数: 2 设有如下结构定义:struct jan int a; float b; c2, *p; 若有 p = &c2; 则对 c2 中的成员 a 的正确引用是C A. ( *p ) . c2 . a B. p - c2 . a C. ( *p ) . a D. p . c2 . a 二、程序选择填空题Question 1 下面程序的功能是统计用0至9之间的不同的数字组成的三位数的个数。 main( ) int i, j, k, count = 0; for( i = 1;i = 9;i+ ) for( j = 0;j = 9;j+ ) if( j=i ) continue; else for( k = 0;k = 9;k+ ) if( k!=i&k!=j ) count+; printf( ”%d”, count ); 【 1 】选择一个答案 A. i != j B. i j Question 2 分数: 2 【 2 】选择一个答案 A. k != i B. k != j C. k != i & k != j D. k != i | k != j Question 3 分数: 2 下面函数的功能是将两个已经按照ASCII码值从小到大排好序的字符串sa、sb,合并到字符串sC中,合并后的字符仍是从小到大的顺序,且相同的字符仅保存一次。 char *strmerge( chat *sa,char *sb,char *sc) char t,*w; w = sc; while( *sa != 0 【 & 】 *sb != 0 ) t = 【 *sa *sb B. *sa != *sb C. *sa = *sb D. *sa *sb Question 5 分数: 2 【 5 】选择一个答案 A. = = B. Question 6 分数: 2 【 6 】选择一个答案 A. *w+ B. *w C. w D. *+w Question 7 分数: 2 【 7 】 选择一个答案 A. *w+ B. w C. *+w D. *w Question 8 分数: 2 下面程序的功能是将从终端上读入的10个整数以二进制方式写入名为“bi.dat”的新文件中。 #include FILE *fp; main( ) int i, j; if( ( fp = fopen( ”bi.dat”, 【 8 】 ) = NULL ) exit( 0 ); for( i = 0;i 10;i+ ) scanf( ”%d”, &j ); fwrite( 【 9 】 , sizeof( int ), 1, 【 10 】 ); fclose( fp ); 【 8 】 选择一个答案 A. ”r” B. ”rb” C. ”wb” D. ”w” Question 9 分数: 2 【 9 】选择一个答案 A. j B. &j C. *fp D. fp Question 10 分数: 2 【 10 】选择一个答案 A. fp B. &j C. j D. *fp 编程题一成绩: 10 / 折扣: 1编程实现,输入n值,在屏幕上输出如图所示的由大写英文字母组成的三角形,图形开始的第一个字符是字母A,输出的字符由A到Z循环显示,字符之间显示一个空格。例:输入:5屏幕输出: A C B F E D J I H G O N M L K测试输入期待的输出时间限制内存限制额外进程测试用例 3以文本方式显示 1. 5以文本方式显示 1. A 2. CB 3. FED 4. JIHG 5. ONMLK无限制 64M 0 编程题二成绩: 10 / 折扣: 0.8输入N个非负整数,这些整数排列起来,组成一个新数,请求出这些可能的新数中的最大数。例如有4个数 123、124、56 和 90,可以组成的数是 1231245690、1241235690、5612312490、9012312456 和 9056124123 等等,其中最大数是 9056124123。输入首先输入一个正整数 N (01000),第二行输入N个整数。输出所能组成的最大数。测试输入期待的输出时间限制内存限制额外进程测试用例 以文本方式显示 1. 4 2. 1231245690以文本方式显示 1. 9056124123无限制 64M 0 测试用例 3以文本方式显示 1. 2 2. 3050以文本方式显示 1. 5030无限制 64M 0编程题三成绩: 10 / 折扣: 0.8已知整数数列第一项和第二项是1,该数列从第三项开始,如果该项是奇数项,则它是前两项之和,如果该项是偶数项,则它是前两项之积,即: f( n ) = 1 当 n = 1 或 2 时, f( n ) = f( n-1 ) * f( n-2 ) 当n是偶数时, f( n ) = f( n-1 ) + f( n-2 ) 当n是奇数时,编写一个递归函数,求数列的第N项。 注意:仅提交自编的函数,不要提交预设代码。预设代码前置代码/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */#include main( void ) int n; long list( ); scanf( %d, &n ); printf( %ldn, list( n ) );/* long list( int m ) if( m = 1 ) return 1; */* PRESET CODE END - NEVER TOUCH CODE ABOVE */测试输入期待的输出时间限制内存限制额外进程测试用例 2以文本方式显示 1. 5以文本方式显示 1. 4无限制 64M 0 编程题四成绩: 10 / 折扣: 0.8编写函数,从链表 A 中删除与链表 B 中数值域相同的节点。链表有头节点。结构的定义: struct node int num; struct node *next; 函数的原型:struct node *dltnode( struct node *headA, struct node *headB );其中:参数 headA 、 headB 是两个单向链表的头指针。函数的返回值是链表 headA 的头指针。 输入:第一行,链表 A 的 num 成员值,当值为 -1 时结束, 第二行,链表 B 的 num 成员值,当值为 -1 时结束。 注意数值 -1 是输入结束标志,不进入链表。 输出:链表 A 的 num 成员值。 注意:仅提交自编程序, 不要提交预设代码 。附图供参考。 预设代码前置代码/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */#include #define NODE struct node#define LEN sizeof( struct node )struct node int num; struct node *next;NODE *create( ) int n; NODE *head, *p1, *p2; head = (NODE *) malloc(LEN); head-num = -1; head-next = NULL; scanf( %d, &n ); while( n != -1 ) p1 = ( NODE * ) malloc( LEN ); p1-num = n; if( head-next = NULL ) head-next = p1; else p2-next = p1; p2 = p1; scanf( %d, &n ); p2-next = NULL; return( head );main( void ) int i, n, a20; NODE *headA, *headB, *p, *create( ), *dltnode( ); headA = create( ); headB = create( ); headA = dltnode( headA, headB ); p = headA-next; while( p != NULL ) printf( %d, p-num ); if( p-next != NULL ) printf( ); p = p-next; printf( n );/* This is an example for list. Please progr

温馨提示

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

评论

0/150

提交评论