《C语言编程》课程考试笔试试卷.docVIP

  • 12
  • 0
  • 约3.87千字
  • 约 6页
  • 2018-11-29 发布于天津
  • 举报
《C语言编程》课程考试笔试试卷

《C语言编程》课程考试笔试试卷 总分: 100分 时间: 60分钟 姓名: 班级: 身份证号: 一:简答:(20分) 1 . 头文件中的 ifndef/define/endif 起什么用?(4分) 编译过程中防止代码段被重复包含。 2. 以下为Windows NT下的VC6开发环境下程序,请计算sizeof的值(8分) char str[] = “Hello” ; char *p = str ; int n = 10; 请计算 sizeof (str ) = 6 sizeof ( p ) = 4 sizeof ( n ) = 4 void *p = malloc( 100 ); 请计算 sizeof ( p ) = 4 3.解释一下什么是内存栈创建、堆分配(4分) 内存栈创建是指在程序运行过程中申请内存栈区的一段空间的过程,堆分配则是程序在内存堆空间内申请一段空间的过程。 4.下面的代码输出是什么,为什么?(4分) void foo(void) { unsigned int a = 6; int b = -20; (a+b 6) ? printf( 6) : printf (= 6); } 6 二.选择:(40分) 1.下面程序段的运行结果是【 A】 a =1;b=2;c=2; while (abc) { t = a; a = b; b = t; c--; } printf(“%d,%d,%d”,a,b,c); A) 1,2,0 B) 2,1,0 C) 1,2,1 D) 2,1,1 2.下面的程序输出是【B】。 typedef union { double x[2]; int y[4]; char z[8];} MYTYPE; MYTYPE them; main() { printf(%d\n,sizeof(them));} (A) 32 (B) 16 (C) 8 (D)24 3.在一个单链表中,已知q所指结点是p结点的前驱结点,若在q和p之间插入结点,则执行【C】 A)s-next = p-next;p-next = s; B) p-next = s-next; s-next = p; C) q-next = s; s-next = p; D) p-next = s; s-next = q; 4. typedef enum { PLAYMODE =0, PAUSEMODE, STOPMODE =5, TRACKRPTMODE, MIXMODE }Status_t; 上述枚举定义中,元素MIXMODE的数值为【D】 A. 4 B. 5 C. 6 D. 7 5 下列do-while循环的次数为【D】 int i=5; do{ printf(“%d\n”, i--); i--; }while(i != 0); A . 0 B.1 C. 5 D. 无限 6. 按照标识符的要求,【A】符号不能组成标识符。 A . 连接符 B.下划线 C. 大小写字母 D. 数字符号 7. 在将两个字符串连接起来组成一个字符串时,选用( C )函数。 A. strlen( ) B.strcpy( ) C. strcat( ) D.strcmp( ) 8. 下列函数中,【D】是对文件进行写操作。 A . get( ); B. read( ); C. seek ( ); D. put( ) 三、写出程序运行结果(第1、2小题各6分,第3小题8分 总计20分) 1.阅读下面代码,写出运行结果。 #include stdio.h struct student { int no; char name; }; void ModifyStudent(struct student b) { b.no=20; b.name=y; } main() { struct student a; a.no=3; a.name=a; ModifyStudent (a); printf(%d,%c,a.no, a.name); } 在控制台显示: __3,a__ 2. 阅读下面代码,写出运行结果。 #include stdio.h void main() { int s; for (int i=1,s=0;i20;i++)

文档评论(0)

1亿VIP精品文档

相关文档