收藏 分销(赏)

《C语言》试卷3(12级).doc

上传人:二*** 文档编号:4518388 上传时间:2024-09-26 格式:DOC 页数:10 大小:208KB
下载 相关 举报
《C语言》试卷3(12级).doc_第1页
第1页 / 共10页
本文档共10页,全文阅读请下载到手机保存,查看更方便
资源描述
《C语言程序设计》期末试题A答案 考      生      信      息      栏 经济 学院 计统 系 专业 2012 年级    姓名______ 学号_______________ 装 订 线 ┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 一、单项选择题(每题2分,共60分) 注意:答案纸不能当草稿,请保持整洁! 1 B 2 B 3 D 4 D 5 A 16 A 17 B 18 B 19 A 20 B 6 B 7 D 8 B 9 A 10 A 21 D 22 D 23 C 24 C 25 A 11 C 12 C 13 C 14 B 15 C 26 A 27 D 28 A 29 D 30 C 二、简答题 (13题,1~12题每题3分,第13题4分,共40分) 1. x % 10 * 100 + x / 10 % 10 * 10 + x / 100 2. 运行结果: 1, 3, 3 3. 运行结果: 6, 13 4. if ( ( i+1 ) % 4 == 0 ) printf ( "\n" ); 5. ① m = sizeof (a) / sizeof (int ) / 3 ; ② 运行结果: 1 5 0 6. ① 语句: c = *a ; * a = *b ; *b = c ; ② swap ( &x, &y ); 7. 运行结果: 5 14 28 8. 运行结果: BCDACDD 9. ① while ( *p++ = *s++ ); ② 运行结果: abc123, abc123 name (排序后) 0 PAS 1 BAS 2 FOR 3 TC 10.① printf ("%s", * p ); ② name的情况 11.① 功能: 查找 ② 结果: ADC 12.① p->next=q->next ; q = p ; ② ABEC 13. while ( p != NULL ) { n++; p = p -> next ; } 《C语言程序设计》期末试题A答题纸 考      生      信      息      栏 经济 学院 计统 系 专业 2012 年级    姓名______ 学号_______________ 装 订 线 ┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 一、单项选择题(每题2分,共60分) 注意:答案纸不能当草稿,请保持整洁! 1 B 2 B 3 D 4 D 5 A 16 A 17 B 18 B 19 A 20 B 6 B 7 D 8 B 9 A 10 A 21 D 22 D 23 C 24 C 25 A 11 C 12 C 13 C 14 B 15 C 26 A 27 D 28 A 29 D 30 C 二、简答题 (13题,1~12题每题3分,第13题4分,共40分) 1. x % 10 * 100 + + x / 100 2. 运行结果: 3. 运行结果: 4. if ( ) printf ( ); 5. ① m = ; ② 运行结果: 6. ① 语句: ; ; ; ② swap ( , ); 7. 运行结果: 8. 运行结果: 9. ① while ( ); ② 运行结果: name (排序后) 0 PAS 1 BAS 2 FOR 3 TC 10.① printf ("%s", ); ② name的情况 11.① 功能: ② 结果: 12.① ; ; ② 13. while ( ) { n++; ; } 厦门大学《C语言程序设计》课程试卷 经济学院统计系2012级各专业 主考教师:黄扬铭 试卷类型:(A卷) 注意:答案填入答题纸中,答案纸不能当草稿,草稿可以写在试卷纸上。考完后试卷和答案纸都得上交。 一、单项选择题 (30题,每题2分,共60分) 1. 下列叙述中错误的是: A) 计算机不能直接执行C语言源程序 B) 计算机可以直接运行二进制文件 C) 后缀为.exe的文件可以直接运行 D) 后缀为.obj和.exe的文件都是二进制文件 2. 若有定义:int x = 2, y = 4; float z = 5.5; 则表达式 (int) (z * x) % y + ( x+ y - 1.0 ) / 2; 的值是: A) 4.5 B) 5.5 C) 12.5 D) 13.5 3. 设t, x和y均为int 型变量,则不是把x和y按从小到大排列的语句是: A) if (x>y) { x += y; y = x-y; x -= y;} B) if (x>y) { t=x; x=y; y=t;} D) if (x>y) { y += x; x = y-x; y -= x;} D) if (y>x) { y += x; x = y-x; y -= x;} 4. 设已有定义 int a = 5, b = 6, c = 7, d = 8, m = 2, n = 2; 则逻辑表达式 ( m = b>a ) || ( n = c>d ) 运算后,m, n的值为: A) 1, 0 B) 2, 1 C) 2, 2 D) 1, 2 5. 下面叙述中,不是结构化程序设计中的三种基本结构之一的是: A) 函数结构 B) 选择结构 C) 循环结构 D) 顺序结构 6. 对于整型变量a,赋值语句 a= ( a%3 == 0 ? 1: 0 );不等价语句是: A) if (a%3 == 0) a=1; B) if (!(a%3)) a=0; C) if (a%3!=0) a=0; D) a=!( a%3); else a=0; else a=1; else a=1;; 7. 关于C语言的函数叙述中,不正确的是: A) main函数可以位于其他自定义函数后面 B) main函数与其他自定义函数之间是平等的 C) 在一个函数内部不能定义其它函数 D) main函数与其他自定义函数可以互相调用 8. 关于变量作用域与生存期的叙述中,不正确的是: A) 在函数内未指定的存储类型变量隐含为auto B) 全局变量的作用域为所在程序的全部范围 C) static变量的生存期为整个程序的运行期间 D) 函数的形参都属于局部变量 9. 若定义 int a[ ][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; 则值8的数组元素为: A) a[1][3] B) a[2][1] C) a[2][4] D) a[3][2] 10. 以下能正确定义数组的是: A) char str[ ]={48,49,50}; B) int a[3]={0,1,2,3}; C) int a[ ]="012"; D) char str[6]="str"; 11. 若有定义:char str1[6] = "ABCDE", *str2 = "FEDCBA"; 错误的语句是: A) strcpy(str2, str1); B) str[1] = ′A′-strcmp(str1, str2); C) str1=str2; D) str2= str1; 12. 若有定义int a[3][5], (*p)[5], i, j;(其中0<i<3,0<j<5), 且p = a; 则对数组元素a[i][j] 的引用错误是: A) *(*(a+i)+j) B) p[i][j] C) *(*(p+i)[j]) D) *(p[i]+j) 13. 设有如下定义:typedef int *INTP; 则错误的叙述是: A) 用INTP 可以定义整型指针变量 B) INTP是整型指针类型的一个新名 C) INTP 是新增的数据类型 D) INTP q 与int *q 是等价的 14. 设有如下语句: struct stu { int num; int age; } s[3] = {{101,18},{102,21},{103,19}}; struct stu *p = s; 则下面表达式的值与s[1].num相同是: A) (p++)->num B) (*++p).num C) (*p++).num D) *(++p)->num 15. 设有定义 union data { char d1; float d2; } demo;,则下面叙述中错误的是: A) sizeof (demo) 的值与sizeof (demo.d2) 的值相同 B) &demo的值与 &demo.d2的值相同 C) sizeof (demo) 的值与sizeof (demo.d1) 的值相同 D) &demo的值与 &demo.d1的值相同 l 以下 (16 ~ 30题) 为:阅读程序, 选择正确的输出的结果。 16. main () { char ch1,ch2; ch1 = 'A' + '5' - '3'; ch2 = 'A' + '6' - '3'; /* 'A' 的ASCII为 65 */ printf ( " %d, %c \n ", ch1, ch2 ); } A) 67, D B) C, D C) C, 68 D) 67, 68 17. main ( ) { int a=1, b=2; while ( a<6 ) { b += a; a += 2; b %= 10; } printf (" %d, %d \n ", a, b ); } A) 5,11 B) 7,1 C) 7,11 D) 6,1 18. void f ( int b[ ] ) { int i = 0; while ( b[i] <= 10 ) { b[i] += 2; i++; } } main ( ) { int i, a[ ] = {1, 5, 10, 9, 13, 7 }; f ( a+1 ); for ( i=0; i < 6; i++ ) printf ( " %d, ", a[i] ); } A) 2, 7, 12, 11, 13, 9, B) 1, 7, 12,11, 13, 7, C) 1, 7, 12, 11, 13, 9, D) 1, 7, 12, 9, 13, 7, 19. main ( ) { int a [ ]= { 1, 2, 3, 4, 5, 0}, i = 0, s; while ( s = a[i++] ) { switch ( s ) { case 1: printf ( " %d ", s + 5 ); case 2: printf ( " %d ", s + 4 ); break; case 3: printf ( " %d ", s + 3 ); default: printf ( " %d ", s + 1); break; } } } A) 6566456 B) 66656 C) 66666 D) 6666656 20. int f ( int x, int y) { return ( ( y - x ) * x); } main ( ) { int a = 3, b = 4, c = 5, d; d = f ( f (a, b), f (a, c) ); printf ( " %d\n ", d ); } A) 10 B) 9 C) 8 D) 7 21. int d = 1; fun (int p) { static int d = 5; d += p; printf ("%d ", d); return ( d ); } main ( ) { int a = 3; printf ( "%d %d \n", d, fun ( a + fun(d) ) ); } A) 6 9 1 9 B) 6 15 15 15 C) 6 6 15 15 D) 6 15 1 15 22. int b = 100, a = 200 fun ( int a ) { a = a + 1; return b++; } main ( ) { int b = 5; b = fun ( b ) + a; printf ( "%d, %d \n", fun ( b ) , b ); } A) 207, 106 B) 101, 301 C) 100, 300 D) 101, 300 23. void sum ( int a[] ) { a[0] = a[-2] + a[2]; } main ( ) { int a[ ] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; sum ( &a[2] ); printf ( " %d \n ", a[2] ); } A) 8 B) 7 C) 6 D) 9 24. void fun ( int array[][3], int k ) { int j; for ( j = 0; j<3; j++ ) array[j][k]++; } main ( ) { int j, i = 2 , a[3][3] = { 0, 1, 3, 1, 0, 4, 2, 4, 5 }; fun ( a, i ); for ( j=0; j<3; j++ ) printf ( " %2d ", a[j][i] ); } A) 2 1 5 B) 3 5 6 C) 4 5 6 D) 1 2 3 25. void fun ( char *s ) { while (*s) { if (*s%2==0) printf ( "%c" ,*s); s++; } } main ( ) { char a[ ] = "good" ; /* ′a′ 的ASCII码值为97 */ fun ( a ); printf ( "\n" ); } A) d B) go C) ood D) good 26. void f ( int *p, int *q ) { p = p + 1; *q = *q + 1; } main ( ) { int m = 1, n = 2, *r = &m; f ( r, &n ); printf ( " %d, %d ", m, n ); } A) 1,3 B) 2,3 C) 1,4 D) 1,2 27. main ( ) { int *p, *q, a[ ] = {1, 2, 3, 4, 5, 6, 3, 2, 9}, i, x = 0 ; p = &a[0]; q = &a[8]; for ( i = 0; i < 3; i++ ) if ( *( p+i ) == *( q-i ) ) x += *( p + i ) * 2; printf ( " %d ", x ); } A) 不确定 B) 5 C) 6 D) 10 28. main ( ) { struct tt { int x; struct tt *y; } a[4] = { 20, a+1, 15, a+2, 30, a+3, 17, a }, *p; p = a + 3; p = p -> y; printf ( " %d\n ", p -> x ); } A) 20 B) 15 C) 30 D) 17 29. union myun { struct { int x, y, z; } u; int k; } a; main ( ) { a.u.x = 4; a.u.y = 5; a.u.z = 6; a.k = 0; printf ( " %d\n", a.u.x ); } A) 4 B) 5 C) 6 D) 0 30. #include <stdio.h> void main ( ) { enum Weekday {sun = 7, mon = 1, tue, wed, thu, fri, sat } day; for ( day = sun; day >= sat; day-- ) printf ( "%3d ", day ); } A) 7 6 5 4 3 2 1 B) sun sat C) 7 6 D) 7 1 2 3 4 5 6 二、简答题 (13题,1~12题每题3分,第13题4分,共40分,答案填入答题纸中相应的位置!) 1. 在以下程序的printf ( ) 中应填入适当表达式,使得输出结果为321。 main ( ) { int x = 123; ; printf ( " %d \n ", x % 10 * 100 + + x / 100 ); } 2. 给出以下程序运行结果 main ( ) { int a = 1, b = 2, c= 3, d = 0; if ( a == 1 && b++ == 2 ) if ( b != 2 || c--! =3 ) printf ( " %d, %d, %d\ n ", a, b, c); else printf ( " %d, %d, %d \n ", a, b, c ); else printf ( " %d , %d, %d \n", a, b, c); } 3. 给出以下程序运行结果。 main ( ) { int sum = 0, i = 0; while ( i++ < 5 ) { if ( i == 2 ) continue; sum += i; if ( sum == 5 ) break; } printf ( "%d , %d \n", i, sum); } 4. 以下函数按每行4个输出数组中的数据,下划线应该填入的语句是: main ( ) { int i , w[ ] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; for ( i = 0; i < 20; i++ ) { printf ( " %4d ", w[i] ); if ( ) printf ( ); } } 5. ① 填入适当表达式,使得m能自动计算数组a的行数; ② 给出以下程序运行结果。 main ( ) { int a[ ][2] = {1, 2, 3, 4, 5, 6, 7 }, i, j, m; m = /* ① 自动计算a的行数*/ for ( i = 0; i< m; i++ ) printf ( " %3d", a[i][i] ); } 6. 在下划线位置填上合适的语句或参数,使程序输出为:x = 5, y = 3 (即x和y 的内容对调)。 void swap ( int *a, int *b ) { int c; } main ( ) { int x = 3, y = 5; swap ( ); printf ( " x = %d, y = %d \n", x, y); } 7. 给出以下程序运行结果。 int b = 2; int fun ( int *k ) { b = * k + b; return (b); } main ( ) { int b=0, a[10] = {1, 2, 3, 4, 5, 6, 7, 8}, i; for ( i = 2; i < 5; i++ ) { b = fun (&a[i]) + b; printf( "%3d", b); } } 8. 给出以下程序的输出结果。 # include <string.h> main ( ) { char s[ ] = "ABCD", * str = s + 1; putchar ( (*str ) ++ ); putchar ( *str ++ ); putchar ( ++ *str ); puts ( s ); } 9. ① 函数scat ( ) 实现字符串连接的操作,写出循环条件;② 给出以下程序的输出结果。 char *fun (char * d, char *s ) { char *p = d ; while ( *p) p ++; while ( ); return (d ) ; } main ( ) { char s1 [10] = "abc" , *s2 = "123" ; s2 = fun ( s1, s2 ) ; printf ( " %s, %s ", s1, s2) ; } 10. 以下程序功能是对字符串按字典序进行排序,并输出排序后结果。 ① 填入适当参数完成程序功能; ② 画出排序后数组name的情况。 # include <string.h> char sort (char *a[ ] , int n ) { char * t; int i, j, k ; for ( i = 0; i < n-1; i++ ) { for (k = i, j = i+1; j < n; j++ ) if (strcmp (a[k], a[j])>0 ) k=j; t = a[i]; a[i] = a[k]; a[k ]= t; } } main ( ) { char * name[ ]={ "PAS","BAS","FOR","TC"}; sort ( name, 4 ) ; for ( p = name; p < name+4; p++ ) printf ("%s", ); /* 填入参数 */ } 11. 假定已建立如下链表结构, 其的结点结构为:struct node { char data; struct node * next }; C NULL B A head data next ① 简单说明函数fun( )的功能 ② 给出下面程序运行的结果。 struct node *fun ( struct node *hd, int x ) { struct node * p = hd ; while ( (p!=NULL) && (p -> data!= x) ) p = p -> next; return p } struct node *create_link ( int n ) /* 创建n个结点的链表,内容略 */ { …… } print_link ( struct node * hd ); /* 显示链表各结点数据,内容略 */ { …… } main ( ) { struct node * q, *head head = create_link (3); /* 创建上图的3个结点的链表 */ q = fun ( head, ′B′ ); q -> data =′D′; print_link (head ); } 12. 对于上题所示的链表,若执行以下语句: struct node *p, *q; q = head -> next; p = ( struct node* ) malloc ( sizeof (struct node ) ); p -> data = ′E′; p->next = NULL; ① 写出将p所指的节点插入到q所指节点后形成链表的语句;; ② 按链表连接顺序写出插入后链表中各节点的值。 13. 以下函数link_len (hd) 求链表长度(即链表结点数),hd为头指针,请完成该函数。 int link_len ( struct node *hd ) { struct node * p =hd; int n=0; while ( ) { n++; ; } /* p 移到下一个结点 */ return n; }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服