《C程序设计》试卷1参考答案.docx

上传人:太** 文档编号:69493370 上传时间:2023-01-05 格式:DOCX 页数:6 大小:19.74KB
返回 下载 相关 举报
《C程序设计》试卷1参考答案.docx_第1页
第1页 / 共6页
《C程序设计》试卷1参考答案.docx_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《《C程序设计》试卷1参考答案.docx》由会员分享,可在线阅读,更多相关《《C程序设计》试卷1参考答案.docx(6页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、一、填空(每空1分,共25分).编写c语言源程序并上机运行的一般过程为编辑、编译、链接和执行。其中,编辑的作用 是输入或修改源程序,编译的作用是将源代码转换成目标代码,链接的作用是 将此目标代码与库函数及其他模块的目标代码链接起来。1 . C语言的标识符只能由字母、数字和下划线组成,且第一个字符 必须为字母或下划线。2 .能将字符类型的变量ch的值从小写转换为对应的大写字母的表达式是ch - a, + A,。3 .语句 printf ( “C+ program、” );的输出结果为 C+ program、。5,设char *s二 natabc ;则指针变量s指向的字符串占7 字节。6,设 in

2、t a=12;则 a+=a-=a*a 的值为-264。7 .为了实现下列图示的指针变量指向数据对象的关系,可以使用一条数据定义语句,这条数 据定义语句是int x, *pl=&x, *p2=&pl o整型变量x_指针变量pl 指针变量p2.设有定义“int a3 4,,则指针变量p指向的元素是 a00 .若用一维数组名作为函数调用的实参,传递给形参的是 第一个数组元素的地址。8 .在C语言中,当一个表达式的值为逻辑“真”时,该表达式的值一定是 非0。9 .执行下列程序后的输出结果是 10。#define M (a, b) (a)(b)?( a):(b)main()(int i=10, j=15

3、;printf(M%dn,10*M(i,j);10 .已知枚举类型colorT定义如下:typedef enum black=l, white, yellow, blue=5, brown, green colorT;则white, yellow和green的内部编码分别为 2 、3 和 7 。11 .内存泄露指的是动态申请的内存没有释放 o. C语言的程序至少包含一个函数,该函数的名字为main 。12 .定义数组int a57,则中i的正确范围值为 0-4,该数组共占35*sizeof (iot) 字节。13 .有如下语句:char *name;name 二(char *) malloc(

4、200 * sizeof (char);那么,name所指的空间分配在 堆 内存中。14 .结构体变量root包含三部分。其中,sp是指向字符串的指针,next是指向该结构体的 指针,data用于存放整数。请填空完成此结构体变量的定义。struct listchar *sp;int data;struct list *next; root;.已知 typedef struct(int x;Char *y; node;node tab2 = l, abv , 2, cd” ;node *p=tab;则表达式*p-y的结果是a,,表达式* (+p) -y的结果是c。二、读程序,写结果(每题5分,共

5、35分)long f(int n)(static x = 1;if (n = 0) return (1);else x = x * n; return(x);)main()(printf(d”, f + f(1) + f(2) + f(3) + f(4);)答案:34main()(int n = 0;while (n+ 0)(function(&b1, size -1); printf(dn”,b); )main()(static int a5=10, 20, 30, 40, 50;function(a, 5);答案:50 40 30 20 10if (n = 0) return (1);el

6、se if (n = 1) return (x);else return (2 * n -1) * x * f(n-1, x) - (n -1) * f(n - 2, x) / n); )main()(printf(M%f, f(4, 4);答案:1060.375main()(char A = apple1;magic(A);printf(H%snn, A);)void magic(char *s)(while (*s) (*s)+; s+;)答案:bqqmfmain() int a2020,i,j5k5n = 5;k = 1;for (i = 0; i n; i+)for (j = O;j

7、v=i;j+)(ai-jD = k;+k;)for (i = 1; i n ; i+)for (j = i;jn;j+)(an-j + i-10 = k;k+;for (i = 0;i n; i+)(printf(HnH);for (j = 0;j=O & si high)return -1;)mid = (low + high) / 2;if (arraymid = key)return mid)else if (arraymid key)return binarysearch(array, low, midi key) ; )else(return binarysearch(array,

8、mid+1, high, key)3假定在C程序中有如下说明:int scoreNUM_STUDENT;要求将score数组中所有分数打印出来,并打印总分,打印格式如下(注意对齐方式):8999100706050Total: 468程序代码如下,请填完整。main()(int i;int total;total = 0;for (i = 0; i NUM STUDENT; i+ ) (Drintf( 3dn”, scorell );total 4-= scorefil ;)printf ( Totar%d,total);四、编程题(20分).写一个非递归函数digits (int n)返回一个

9、整数n的位数。如digits(128)返回3;digits(60026)返回 5。(5 分)参考答案:int digits(int n)int number_of_digit=0;while (n)(+number_of_digit;n/=10;)return numberofdigit;.写一个递归函数digits (int n)返回一个整数n的位数。(5分) 参考答案:int digits(int n)if (n/10 二二 0) return 1;else return 1+digits(n/10);1 .编制一个程序,实现计算器的功能(仅包括单个的+、一、义、+),使得在命令行下可 以

10、通过如下形式执行该程序:calc 3+5calc 12 X 30其中,calc为该程序形成的可执行文件的文件名。(10分)参考答案:#include stdio.h#include nstring.hnint convert(char *s);main(int argv, char *argc)char op I 6, op26, symb;int il, i2, answ;strcpy(opl,argc 1 );strcpy(op2,argc3);symb = *argc2;il=convert(opl);i2=convert(op2);switch(symb)case +:answ=il+i2;break;case -:answ二il-i2;break;case !*:answ=i 1 *i2;break;case 7*:answ=i 1 /i2;break;)printf(n%d %c %d 二 %dnn,i 1 ,symb,i2,answ);)int convert(char s)(int num=O;int i;for (i=0; si!-0*; +i)(num *= 10;num +二 si-O;)return num;)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com