2014年C语言程序设计试卷-A卷(正式用卷).doc_第1页
2014年C语言程序设计试卷-A卷(正式用卷).doc_第2页
2014年C语言程序设计试卷-A卷(正式用卷).doc_第3页
2014年C语言程序设计试卷-A卷(正式用卷).doc_第4页
2014年C语言程序设计试卷-A卷(正式用卷).doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

计算机学院2013-2014学年第2学期C语言程序设计考试试卷A卷(或B卷): A卷 闭卷(或开卷):闭卷 考试时间:2014年 6 月 18 日专业 班级 学号 学生姓名 题号一二三四五六七总分核对人题分10101010202020100得分注意:试卷后面附有运算符的优先级和结合性表。得分评卷人一、 单项选择题(在下面每小题的A、B、C、D四个选项中,只有一个选项是正确的,请选择正确的选项并填写到括号内,选择正确得分。本大题共10小题,每小题1分,共10分。) 1、-11的16位补码是 【 】A、0X800B B、0XFFFBC、0XFFF4D、0XFFF52、下列标识符中,不是C语言关键字的是 【 】A、charB、includeC、voidD、break3、下列运算符中,优先级最高的是 【 】A、.B、-C、% D、&4、关于023584UL最准确的解释是 【 】A、无符号长整型常量B、长整型常量C、有符号整型常量D、非法常量5、下列错误的转义字符是 【 】A、137B、138C、xaD、a6、有如下程序片段:int i = 0;while (i+ 8 | c【 】 3、B(3, 5+5) % 4【 】 4、c = h【 】 5、c ? h+c : h-c本大题的第6题至第10题请参考下面的说明,请计算出表达式的值并填入各题前面的括号中,各题的表达式相互无关。int x4 = 1, 2, 3, 4, y3 = 5, 6, 7;char s1 = ABC, s25 = XYZ;struct T int *a;char c;char *s; t = x, 8, s1, y, 66, s2, *p = t;【 】 6、*p-a【 】 7、*(+p)-s 【 】 8、*p-s+【 】 9、p-a0 + p1.c【 】 10、p-sy0-4 得分评卷人四、 判断改错题 (先判断下面各题中是否存在错误;如果存在错误,请改正之;否则不必改。本大题共5小题,每小题2分,共10分。)1、以下代码段根据变量a的符号确定x的值:若a为正数,则x为1,;若a为负数,则x为-1;若a为零,则x为0。int a, x;if (a 0)x = 1;if (a 0)x = -1;elsex = 0;2、以下代码段用来计算:s = 1 + 2 + 3 + + 100。int s, i;for (i=1; i=100; i+)s += i;3、将驱动器D下文件夹TEST中的文件a.dat以文本文件只读方式打开。FILE *fin;fin = fopen(D:TESTa.dat, r);4、以下代码段声明一个整型指针pa并使其指向一个整型变量a。typedef int *pint;int a;pint pa = &a;5、 以下代码通过键盘输入一个整数,存入变量a。int a, *p = &a;scanf(%d, &p);得分评卷人五、简答题(本大题共5小题,每小题4分,共20分)1、请写一个C表达式,判断短整型数a的最高位是否为1,是,表达式的值为1,否则为零。2、定义一个带参的宏isdigit(c),用来判断字符型数据c的值是否是数字字符,如果是,宏调用表达式的值为1,否则为0。3. 华氏温度f与摄氏温度c的转换公式为:若定义: float c,f; 则c = 5 / 9 * (f - 32)是其对应的C语言表达式吗?为什么?4、解释声明语句 void (*pf3)(char *, char *); 的含义。5、下面程序段可判断整数x是否为素数,当x是素数时,标志变量flag为1,否则,flag为0。请改写下面程序段中的for语句,要求功能等效,但不能使用break,goto等非结构化语句。for (i=2; i= x/2)flag = 1;elseflag = 0;得分评卷人六、阅读程序并写出其运行结果(本大题共5小题,每小题4分,共20分。)1、请写出下面程序的运行结果。#include int main(void)int i = 0, a = 4, 3, 2, 1, 0, m; while (m = ai+) switch (m) case 0: m-; case 1: m+; case 2: m-; case 3: m+; printf(%d , m); return 0;2、请写出下面程序的运行结果。#include void f(int s, int * n) if (s = 0) *n += s; else if (s = 1) *n -= s; else if (s = 2) *n *= s; else if (s = 3) *n /= s;int main(void) int x = 9, i; for (i=0; i4; i+) f(i, &x); printf(%d , x); return 0;3、请写出下面程序的运行结果。#include #define N 4int main(void) int aN = 1, 2, 3, 4, x = 2, s = 0, i; for (i=0; iN; i+) s = s * x + aN-i-1; printf(%dn, s); return 0;4、请写出下面程序的运行结果。#include unsigned f(unsigned *a, unsigned n) unsigned m; if (n = 1) return a0; m = f(&a1, n-1); return a0m ? a0 : m;int main(void) unsigned a8 = 21, 31, 17, 53, 43, 17, 47, 11, m; m = f(a, 8); printf(%u, m); return 0;5、请写出下面程序的运行结果。#include unsigned g(unsigned a, unsigned b) unsigned t; while (b != 0) t = a % b; a = b; b = t; return a; int main(void) unsigned a42 = 24, 36, 13, 11, 11, 33, 10, 25, i; for (i=0; i4; i+) printf(%u , g(ai0, ai1); return 0;得分评卷人七、完善程序(本大题有3小题,给出的都是部分程序,通过填空来完善程序。本大题共10空,每空2分,共20分。)1. 本大题第、空参阅下面的程序片段。程序说明 下面代码定义了函数mystrcpy,用于字符串复制,比如,函数调用mystrcpy(s, t),将字符指针t所指向的字符串复制到字符指针s所指向的存储区。char *mystrcpy(char *s, char *t) int i; for (i=0; *(s+i)= ; i+) return s; 2. 本大题第、空参阅下面的程序片段。程序说明 下面代码定义了函数myatoi,将十进制数字串转换为对应整数,比如,函数调用 myatoi(12345),返回值为12345。int myatoi(char s) int j, num; for (j=0, ; sj!=0; j+) num = ; return ; 3. 本大题第、空参阅下面的程序。程序说明 用单向链表实现超长整数的加法运算。程序运行时分别输入两个任意位数的十进制整数,每输入一个整数后输入一个换行符,程序输出这两个整数的和。比如,若输入:1234567890123456789012345678901234567890123456789099999999999999999999999999999999999999999999999999则程序输出:112345678901234567890123456789012345678901234567889#include #include struct s_list int data; struct s_list *next;void input(struct s_list *phd);struct s_list *addlist(struct s_list *hda, struct s_list *hdb);void output(struct s_list *hd);int main() struct s_list *hd, *hd1, *hd2, *p; input(&hd1); input(&hd2); hd = addlist(hd1, hd2); output(hd); for (p=hd; p!=NULL; p=hd) hd = hd-next; free(p); return 0;void input(struct s_list *phd) struct s_list *head = NULL, *p; char ch; while (ch=getchar() != n) p = (struct s_list *)malloc( ); p-data = ch - 0; p-next = head; head = p; *phd = ;struct s_list *addlist(struct s_list *pa, struct s_list *pb) struct s_list headnode = 0, NULL, *tail = &headnode, *p; int carry = 0; while (pa!=NULL & pb!=NULL) tail-next = (struct s_list *)malloc(sizeof(struct s_list); tail = tail-next; tail-data = pa-data + pb-data + carry; carry = tail-data / 10; tail-data = tail-data % 10; pa = pa-next; pb = pb-next; if (pa = NULL) p = pb; else p = pa; while (p != NULL) tail-next = (struct s_list *)malloc(sizeof(struct s_list); tail = tail-next; tail-data = ; carry = tail-data / 10; tail-data = tail-data % 10; p = p-next; if (carry) tail-next = (struct s_list *)malloc(sizeof(struct s_list); tail = tail-next; tail-data = carry; tail-next = ; return headnode.next;void output(

温馨提示

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

评论

0/150

提交评论