1、C 语言程序设计 形考任务 1题目 1在每个 C 语言程序中都必须包含有 这样一个函数, 该函数的函数名为( )。选择一项:A. main B. MAIN C. name D. function 题目 2C 语言源程序文件的缺省扩展名 为( )。选择一项:A. cpp B. exe C. obj D. c 题目 3由 C 语言目标文件连接而成的可 执行文件的缺省扩展名为( )。选择一项:A. cpp B. exe C. obj D. c 题目 4程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用的分隔符为( )。选择一项:A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格
2、或回车 题目 5每个 C 语言程序文件的编译错误 被分为( )。选择一项:A. 1 类 B. 2 类 C. 3 类 D. 4 类 题目 6在( )。选择一项:A. B. ; C. x=0; D. y=10 题目 7C 语言程序中的基本功能模块为 ( )。选择一项:A. 表达式 B. 标识符 C. 语句 D. 函数 题目 8在一个函数定义中,函数头包括的 3 个部分依次为函数类 型、函数名和( )。选择一项:A. 表达式 B. 语句 C. 参数表 D. 函数体 题目 9在一个程序文件中,若要使用#include 命令包含一个用户定义的头文件, 则此头文件所使用的起止定界符为一对( )。选择一项:
3、A. 尖括号 B. 双引号 C. 单引号 D. 花括号 题目 10在 C 语言程序中,多行注释语句使用的开始标记符为( )。选择一项:A. / B. /* C. */ D. * 题目 11在 printf()函数调用的格式字符串中,若使用格式符为“%c”,则对应输出的数据类型为( )。选择一项:A. char B. int C. float D. double 题目 12在 printf()函数调用的格式字符串中,若使用格式符为“%5d”, 则规定对应输出的数据占用的字符位置个数为( )。选择一项:A. 5 B. 4 C. 3 D. 6 题目 13转义字符表示的字符是( )。选择一项:A. 单
4、引号 B. 双引号 C. 反斜线 D. 问号 题目 14枚举类型中的每个枚举常量的值都是一个( )。选择一项:A. 整数 B. 浮点数 C. 字符 D. 逻辑值 题目 15运算符优先级最高的是( )。选择一项:A. = B. *= C. a+=a*a;”,则执行结束后, a 的值为( )。选择一项:A. 12 B. 144 C. 156 D. 288 题目 18x0 B. const int M2=20; C. const int M3 10; D. const char mark=3; 二、判断题(共 60 分,每小题 2 分。叙述正确则回答“ 是”,否则回答“否”)题目 21C 语言中的每
5、条简单语句以分号作 为结束符。选择一项:对 错 题目 22二、判断题(共 60 分,每小题 2 分;题目 21;C 语言中的每条 简单语句以分号作为结束符;C 语言中的每条复合语句以花括号作为结束符;在 C 语言程序中,在行尾使用注释的开始标记符为一对;注释内容的开始所使用的标记符为/* ,则注释内容的;在一个 C 语言程序文件中,若要包含一个头文件,则使;用于输出表达式值的标准输出函数是 printf();当不需要函数返回任何 值时,则需要使二、判断题(共 60 分,每小题 2 分。叙述正确 则回答 “是”,否 则回答“否”) 题目 21 C 语言中的每条简单语句以分号作为结束符。 对 题
6、目 22 C 语言中的每条复合语句以花括号作为结束符。 错 题目 23 在 C 语 言程序中,在行尾使用注释的开始标记符为 一对单斜线字符。对 题目 24 注释内容的开始所使用的标记符为/*,则注释内容的 结束所使用的标记符为*/。对 题目 25 在一个 C 语言程序文件中,若要包含一个 头文件, 则使用以百分号开始的预处理命令。错 题目 26 用于输出表达式值的标准输出函数是 printf()。对 题目 27 当不需要函数返回任何值时,则需要使用保留字 void 作为函数的返回值类型。对 题目 28 每个 C 程序文件在编译时可能出现有警告性错误,其对应的标识符为 error。错 题目 29
7、 十进制数 25 表示成符合 C 语言规则的八进制数为 31。错 题目 30 十进制数 25 表示成符合 C 语言规则的十六进制数为 0x19。对 题目 31 在 C 语 言中,转义字符n表示一个换行符。 对 题 目 32 执行“printf(-2);”语句后得到的输出结果为 H。错 题目 33 已知字符C的 ASCII 码为 67,当执行“int x=C+5;”语句后 x 的值为 72。对 题目 34 假定一个枚举类型的定义为“enum RBab,ac=3,ad,aex=ad;”,则 x 的值为 2。错 题目 35 float 的 类型长 度为 8。错 题目 36 在 C 语 言中,常数 2
8、8 和 3.26 具有相同的数据类型。 错 题目 37 若需要定义一个符号常量,并且使 C 语言能够进行 类型检查,则应在定义语句的开始使用保留字 const。对 题目 38 使用 const 语句定义一个符号常量时,不必对它进行初始化。错 题目 39 表达式 45 的值为 3。错 题目 40 假定 x=5,则表达式 2*x+的值为 12。错 题目 41 表达式(float)25/4 的值为 6。错 题目 42 表达式 x=x+1 表示成增量表达式为+x。对 题目 43 关系表达式(x!=0)的等价表达式为(x)。 对 题目 44 关系表达式 x+y5 的相反表达式为 x+yb | b=5)的
9、相反表达式为(ab ”语句后 a 的值为 10。 对 题目 48 带有随机函数的表达式 rand() 的值所在的区间范围是 019。对 题目 49 假定 x=5,则执行“y=x+;”语句后,x 的值为 5。错 题目 50 假定 x=5,则执行“y=+x;”语句后,y 的值为 6。对 三亿文库 包含各类专业文献、幼儿教育、小学教育、外语学习资料、专业论文、高等教育、文学作品欣 赏、 应用写作文书、行业资料、中学教育、各类资 格考试、生活休闲娱乐、国家开放大学 C 语 言程序设计 A 第一次形考任务及答案 49 等内容。题目 49假定 x=5,则执 行“y=x+;” 语 句后,x 的值为 5。选
10、择一项:对 错 题目 50假定 x=5,则执 行“y=+x;” 语 句后,y 的值为 6。选择一项:对 错一、单选题(每小题 2 分,共 20 分)1. C语言源程序文件的缺省扩展名为( c )。2设 x 和 y 均为逻辑值 ,则 x )。6在下面的函数原型声明中,存在语法错误的是(int AA(int a; int b;); )。7. 假定 a为一个数组名, 则下面存在 错误的表达式为( *a+ )。8. 假定有定义为“int a10, x, *pa=a; ”,若要把数组 a 中下标为 3 的元素值赋给 x,则不正确的赋值为( x=*pa+3 )。9字符串“y=%dn“ 的长度为_5_。10
11、. 向一个二进制文件中写入信息的函数为(fwrite() )。二、填空题(每小题 2 分,共 26 分)1执行“printf(“%c“,A+3);”语句后得到的输出结果为_D_2短整数类型 short int 的长度为 23. 用类型关键字表示十进制常数 3.26f 的类型为_float4. 假定 y=10,则表达式 +y*3 的值为_33 5. 逻辑表达式(x=0 switch(2*x+1) case 4: printf(“%d “,x); break;case 7: printf(“%d “,2*x); break;case 10: printf(“%d “,3*x); break;def
12、ault: printf(“%s “,“default“); 输出结果:62. #includevoid main() int f=1,i; for(i=1;ivoid main() int a8=12,39,26,41,55,63,72,40;int i, c=0; for(i=0; i#includevoid main( ) char s=“123456“;int i, n=strlen(s) ;for(i=0; iint LB(int *a, int n) int *p,s=1;for(p=a; pint SA(int a, int b) if(ab) return 1;else if(
13、a=b) return 0;else return -1; 函数功能:比较两个整数 a 和 b 的大小,若 ab则返回 1,若 a=b则 返回 0,若 adata);f=f-next;printf(“n“); 函数功能:遍历输出由 f 所指向的单链表中每个结点的值。五、按题目要求 编写程序(每小题 6 分,共 12 分)1. 完善下面程序, 该程序功能是从 键盘上输入 10 个整数到一维数组 a10中,然后按照下 标从大到小的次序输出数组 a10中的每个元素值,元素 值之间用一个空格分开。#includevoid main() int a10,i; /用 i 作为循环变量printf(“从键盘
14、输入 10 个整数: n“);/向下补充程序内容,用两个 for 循环实现printf(“n“); for(i=0; i=0; i-) printf(“%d “,ai); /6 分注:第 1 行中的 /1 分for(a=6;a0 switch(2*x-1) case 4: printf(“%d “,x); break;case 7: printf(“%d “,2*x); break;case 10: printf(“%d “,3*x); break;default: printf(“%s “,“default“);printf(“%sn“,“switch end.“);输出结果 default
15、 switch end.2. #includevoid main() int f1,f2,i;f1=1;printf(“%d “,f1);for(i=2;ivoid main() int a10=12,39,26,41,55,63,72,40,83,95;int i, i1=0, i2=0;for(i=0;i#includevoid main( ) char s15=“567891234“;int i, n=strlen(s) ;for(i=0; iint LB(int *a, int n) int i,s=1;for(i=0;ivoid main() int i,s=0;for(i=1;i#
16、define N 6void main()int i,aN=2,5,8,10,15,21;for(i=0; i#includevoid main() int i;unsigned int len;char* a5=“student“,“worker“,“cadre“,“soldier“,“zzeasan123“;len=strlen(a0);for(i=1; ilen) len=strlen(ai);printf(“%dn“,len);输出结果 109. #includevoid main()int a,b;for(a=2,b=3; bvoid LE(int* a, int* b) int x
17、=*a;*a=*b; *b=x;void main() int x=15, y=26;printf(“%d %dn“,x,y);LE( printf(“%d %dn“,x,y);输出结果 15 26 26 1511. #includevoid main() int i, s=0;for(i=1;i+) if(s30) break;if(i%2=0) s+=i;printf(“s=%dn“,s);输出结果 s=4212. #includevoid main() int a9=36,25,48,24,55,40,18,66,20;int i, b1, b2;b1=b2=a0;for(i=1; ib
18、1) b1=ai;if(aivoid SB(char ch) switch(ch) case A: case a:printf(“WW “); break;case B: case b:printf(“GG “); break;default:printf(“BB “); break;void main() char a1=a,a2=B,a3=f;SB(a1);SB(a2);SB(a3);printf(“n“); 输出结果 WW GG BB14. #include#define M 6void main() int i,x;int aM=10,15,22,37,46,58;for(i=0; i
19、struct Worker char name15; int age; float pay;void main() struct Worker x=“wanghua“,52,2350;struct Worker y, *p;y=x; p=printf(“%d %7.2fn“, y.age+p-age, p-pay+20);输出结果 104 2370.0016. #includevoid main() int i,j,k=0;for(i=0; ivoid main()int x=60;int i=2, p=1;while(1) if(x%i=0) p*=i; x/=i;if(ivoid main
20、() int a8=76,63,54,62,40,75,90,58;int i;for(i=0; i70) printf(“%d “,ai);printf(“n“); 输出结果 76 75 9019. #includevoid WF(int x, int y) x=x+y;y+=x;printf(“%d %dn“,x,y); void main() int x=3, y=8;WF(x,y); 输出结果 11 1920. #includeint LA(int *a, int n) int i,s=0;for(i=0;iint SG(int x) /x为大于等于 2 的整数int a=(int)s
21、qrt(x); /sqrt(x)取 x 的平方根int i=2;while(idata;f=f-next;while(f) if(f-datax) x=f-data;f=f-next; return x; 假定 struct IntNode 的类型定义为:struct IntNode int data; struct IntNode* next;求出由 f 所指向的单链表中所有结点的最大值。3. #includeint SA(int a, int b) if(ab) return 1;else if(a=b) return 0;else return -1;比较两个整数 a 和 b 的大小,若
22、 ab则返回 1,若 a=b则返回 0,若 adata);f=f-next;printf(“n“);假定 struct IntNode 的类型定义为:struct IntNode int data; struct IntNode* next;遍历并输出由 f 所指向的单链表中每个结点的值。5. int SC(int a, int b, int c) if(a=b if(b=a return c; 求出 a,b,c 三个数中的最大值并返回。6. int* LI(int n) int* a=malloc(n*sizeof(int);int i;for(i=0;i=k) c+;return c; 统计并返回一维整型数组 an中大于等于 k 的值的个数8. void QA(struct Worker a, int n) int i;for(i=0; i void main()int i; for(i=3; i=50; i+) if(i%3=0 | i%5=0) printf(“%d “,i);