




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、班级: 学号: 姓名:书面作业2(数组、函数、指针、系统函数、结构体、文件读写)一、判断题:在正确的说法前面填写T,在错误的说法前面填写F(每题1分)得分: ( F )1每一个C语言函数,都必须用return语句结束。( T )2如果函数有返回值,则该函数的表达式可以作为数据对象使用。( F )3. 函数表达式中,实参类型必须与对应的形参类型一样。( T )4函数调用时,实参与形参必须类型兼容,且一一对应。( T )5C语言实参与形参结合的唯一方式是将实参的值复制到形参中。( F )6C语言实参与形参结合的一种方式是将实参的地址复制给形参。( T )7在函数体中申明的变量,仅在该函数范围内有效
2、。( T )8在所有函数外申明且位于所有函数定义之前的变量,可以在所有函数中使用。( F )9. C 语言程序中,main 函数必须放在所有其他函数之前。( F )10数组名相当于一个变量名,可以作为变量使用。( T )11数组元素表达式相当于一个变量名,可以作为变量使用。( F )12数组元素在内存中如何排列,并没有严格的要求。( T )13数组元素在内存中必须一个紧挨一个存放,因此数组是一种数据结构。( T )14字符串实际上是一个1维字符数组,其最后一个元素必须是字符0。( F )15任何一个一维字符数组都可以当成字符串使用。( T )16字符串数组相当于最末一个元素为字符0的一维数组的
3、数组。( F )17将字符串字面值”hello!”赋值给一维字符数组str的写法是:str = “hello!”;( F )18. 指针表示变量的地址,因此没有类型之分别。( T )19. 指向不同数组的两个指针不能进行有意义的比较。( F )20. 数组名相当于一个指针变量。( T )21. 数组名相当于一个指针常数。( T )22. 数组名可进行取值运算,指针变量可进行下标运算。( T )23. 数组名是指向数组第一个元素的指针常数。( F )24. 指针表示变量在内存中的地址,不同类型变量的指针类型相同。( F )25. 系统函数由开发环境实现,因此不属于C语言标准范畴。( T )26.
4、 编程时,应该尽量使用系统函数功能,而不是自行开发相同的功能。( F )27. 自定义结构体时,成员中可以包含所定义结构体类型成员。( T )28. 自定义结构体时,成员中可以包含指向结构体类型变量的指针成员。( F )29. 与数组类似,不能进行结构体变量间的整体赋值。( T )30. 结构体变量一般不能进行关系和算术运算。( T )31. C语言文件读写通过系统函数实现。( T )32. 文件使用完毕后,必须关闭它。否则可能会丢失信息,或使文件不能打开。( T )33. 文件处理系统函数中,使用FILE结构体指针传递或返回文件信息。二、选择题: 在四个选项中选择最合适的一个选项填写在 上(
5、每题2分)得分: 1如果有以下函数定义,则表达式fun(2.1)的值类型是( A )。 fun(float x) float y = 3 * x - 4; return y; A、intB、voidC、float D、不确定2以下程序的输出结果是( C )。 int func( ) int a, b, c; a = 3, b = 5; /C语言允许用逗号(,)连接两个表达式 c = a * b; return c;int main() int s = 9; s = func(); printf("%d", s); return 0;A、9B、5C、15D、33若有如下函数定
6、义: int fun() static int k = 0; return +k; 以下程序段运行后屏幕输出为( D )。int i;for(i=1; i <= 5; i+) fun();printf("%d", fun();A、0 B、1 C、5 D、64以下程序的输出结果是( )。 void fun(int x, int y, int z) z = x * x + y * y; int main() int a = 30; fun(5, 2, a); pr
7、intf("%d", a); A0B29C30D编译错误5以下程序的输出结果是( B )。 int a, b; void func() a = 100; b = 200; int main() int a = 5, b = 7; func(); printf("%dt%d", a, b); A100 200 B5 7C5 200 D10076以下程序的输出结果是( D )。 int a = 5;void fun(int b) static int a = 10; a += b; printf("%d", a); int main()
8、int c = 20; fun(c); a += c; printf(" %dn", a); return 0; A30 50B25 45C25 30D30 257有如下程序int func(int a, int b) return a + b; int main() int x = 2, y = 5, z = 8, r; r = func(func(x, y), z); printf("%dn", r); return 0;该程序的输出的结果是( D )。A、12 B、13 C、14 D、158若有定义:int a10,则对数组a元素的正确引用是 D
9、。A)a10 B)a3.5 C)a(5) D)a10-109以下不能正确定义二维数组的是( D )。 A、int a22 = 1, 2; B、int a2 = 1, 2, 3, 4 C、int a22 = 1, 2, 3 D、int a2 = 1, 2, 3, 4;10若有说明int a34=0; 则下面正确的叙述是 D 。A) 只有元素a00可得到初值0B) 此说明语句不正确C) 数组a 中各元素都可得到初值,但其初值不一定是0D) 数组a 中各元素都可得到初值011以下能对一维数组a进行正确初始化的语句是 C 。A) int a10=(0,0,0,0,0);B) int a10=;C) i
10、nt a=0;D) int a2=0, 0, 0; 12下面对s的初始化,其中不正确的是 D 。A) char s5=“abc”; B) char s5=a,b,c;C) char s5=”;D) char s5=”abcdef”;13. 下列数组的定义合法的是 B 。A) int a=“string”;B) int a=0,1,2,3,4;C) char str=“string”;D) int a2=1,2,3,4;14.对字符数组str赋初始值,不能作为字符串使用的是 D A) char str=”shanghai”;B)char str=“shanghai”;C)char st
11、r9=s,h,a,n,g,h,a,i;D)char str8=s,h,a,n,g,h,a,i;15.有如下定义:int a3=1,2,3,4,5,6,7,8;则数组a的行数为 B 。A) 2 B) 3 C) 4 D) 不确定16.执行下面的程序段后,变量k的值为 C int k = 3, a2 = 2, 3;k = a1 * 10;A) 10 B) 33 C) 30 D) 不定值17. 以下对二维数组a 的正确说明是 C 。A) int a3;B) float a3,4;C) double a14; D) float a(3)(4);18. 以下程序的输出结果是( B )。 int main(
12、) int a34 = 1, 2, 9, 2, 5, 1, 4, 8; printf("%d%d%d%d", a03, a11, a13, a23); return 0; A、0200B、0210C、0218D、092819. 若有说明:int n = 2, *p = &n, *q = p;,则非法的赋值语句是( D )。A、p = q;B、*p = *q;C、n = *q;D、p = n;20若有以下语句: int a = 5, b = 3, *p, *q, *t; p = &a; q = &b; t = q; q = NULL; 执行上述语句后,
13、下列判断中正确的是( C )。 A、*q 值为3;B、t与q相等;C、*p的值为5;D、*q与*t相等;21若有语句:int *point, a = 4;和point = &a;,下面均代表地址的一组选项是( D )。 A、a,point,*&aB、&*a,&a,*point C、*&point,*point,&aD、&a,&*point,point22下列程序的输出结果是( D )。 int main() char a10 = 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, *p = &a0 + 5; pri
14、ntf("%d", *p); return 0;A、编译错误B、a5的地址C、5D、423下面程序的输出结果是( C )。 int main() int a = 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, *p = &a0; printf("%dn",*p + 9); return 0; A、9B、1C、10 D、024下列程序段的输出结果是( B )。 void func(int *x, int *y) printf("%d%d", *x, *y); *x = 3; *y = 4; int main() in
15、t x = 1, y = 2; func(&y, &x); printf("%d%d", x, y); return 0; A、1212B、2143C、1234D、211225以下程序的输出结果是( C )。#include<string.h>int main() char a7 = "a00a00" int i, j; i = sizeof(a); j = strlen(a);printf("%d %dn", i, j);return 0;A、2 2 B、7 6 C、7 2 D、6 226以下程序的输出结
16、果是( A )。 #include <string.h> int main() char ch = "abc", x34; int i; for(i=0; i<3; i+) strcpy(xi, ch); for(i=0; i<3; i+) printf("%s", &xii); printf("n"); return 0;A、abcB、abcabcabcC、abcbccD、aaa27. 有定义语句int b; char c10;则正确的输入语句是( B )。 A、scanf("%d%s&qu
17、ot;, &b, &c);B、scanf("%d%s", &b, c); C、scanf("%d%s", b, c);D、scanf("%d%s", b, &c);28. 若有定义:int a = 2;则语句a = strcmp("miss", "miss");运行后a的值为( B )。 A、1 B、0 C、-1 D、229设有以下说明语句struct ex int x;float y;char z;example;则下面的叙述中
18、不正确的是( B )。A、struct是结构体定义的关键字B、example是结构体类型名C、x, y, z都是结构体成员名D、struct ex是结构体类型30设有如下定义( )。 struct sk int a; float b;data;int *p;若要使p指向data中的a域,正确的赋值语句是( C )。A、p = &a;B、p = data.a;C、p = &data.a;D、*p = data.a;31设有如下定义 struct ss char name10; int age; char sex;std3, *p = std;下面各输入语句中错误的是( B )。A
19、、scanf("%d", &(*p).age);B、scanf("%s", &);C、scanf("%c", &std0.sex);D、scanf("%c", &(p->sex);32以下各项是说明一种新的类型名,其中正确的是( C )。 A、typedef v1 int;B、typedef v2 = int C、typedef int v3;D、typedef v4 : int;33以下叙述中错误的是( D )。 A、二进制文件打开后可以先读文件的末尾 B、文
20、件使用结束,应当用fclose函数关闭文件 C、利用fread函数从二进制文件中读数据,可以用数组名给数组中的所有元素读入数据 D、FILE结构体指针不能指向二进制文件34下面程序段的功能是 ( C )#include <stdio.h>int main() char s1; s1 = putc(getc(stdin), stdout); return 0;A、从键盘输入一个字符给字符变量s1B、从键盘输入一个字符,然后再输出到屏幕C、从键盘输入一个字符,然后在输出到屏幕的同时赋给变量s1D、在屏幕上输出stdout的值35设文本文件stu1.dat已存在,且有如下程序段#incl
21、ude <stdio.h>FILE *fp1, *fp2;fp1 = fopen("stud1.dat", "r");fp2 = fopen("stud2.dat", "w");while(!feof(fp1) putc(getc(fp1), fp2);该程序段的功能是( A )A、将文件stud1.dat的内容复制到文件stud2.dat中B、将文件stud2.dat的内容复制到文件stud1.dat中C、屏幕输出stud1.dat的内容D、什么也不做36下列程序的主要功能是( B )#include
22、 <stdio.h>int main() FILE *fp; long count = 0; fp = fopen("q1.c", "r"); while(!feof(fp) fgetc(fp); count+; printf("count = %ldn", count); fclose(fp); return 0;A、读文件中的字符 B、统计文件中的字符数并输出C、打开文件 D、关闭文件37下面程序的主要功能是:( C )#include <stdio.h>int main()FILE *fp; float
23、x4 = -12.1, 12.2, -12.3, 12.4; int i; fp = fopen("data1.dat", "wb"); for(i=0; i<4; i+) fwrite(&xi, 4, 1, fp);fclose(fp);return 0;A、创建空文档data1.datB、创建文本文件data1.datC、将数组x中的四个实数写入文件data1.dat中D、定义数组x38有如下程序段:#include <stdio.h>int main()FILE *fp; int i; char s10; fp = fop
24、en("name.txt", "w"); for(i=0; i<40; i+) scanf("%s", s); fputc(s, fp);fputc("n", fp); fclose(fp); return 0;下面说法正确的是:( B )A、将39个人的名字写入文本文件name.txt中B、将40个人的名字写入文本文件name.txt中C、文件name.txt中只能写入40个字符D、文件name.txt必须存在三、 填空题1. 名为func无返回值无参数的函数原型申明为: void func(); 。2.
25、含有两个整型参数返回值为单精度浮点型名为myFunc的函数原型申明可写为:float myFunc(int a, int b); 。3. 设有函数原型为int func(double a, int b); ,则使用4.5和12做实参调用该函数并将结果赋值给整型变量m的表达式为: m = func(4.5, 12) 。4. 设有函数原型为float max(float a, float b);,则使用3.2和5.1做实参调用该函数并将结果采用格式化输出方式输出的表达式为: printf(“max(3.2, 5.1) = %f”, max(3.2, 5.1) 。5. 定义一个有5个元素名为rati
26、os的双精度型数组的写法是 double ratios5; 。6. 定义一个4行5列名为symbols的字符数组的写法是 char symbols45; 。7. 设float y45=0.0;,则数组y中元素的个数是 20 。8. 定义一个3行5列名为points的整型数组且将元素初值全部赋0的写法是 int points35 = 0 。9. 设有二维数组定义为int a3=2, 3, 4, 5, 6, 9, 0, 7; 则该数组有 3 行 3 列,数组元素a22的值为 0 。10. 设有数组定义 int a5 = 3, 4, 1; 则数组元素a1的值为 ;a3的值为 。11. 设有数组定义i
27、nt a = 3, 5, 9, 2, 8, 0;则该数组的长度为 6 ;数组元素下标最大值为 5 ;元素a3的值为 2 。12. 如果用字符数组来存储长度为n的字符串,则数组长度至少定义为 n + 1 。13.在C语言中字符串是由若干有效字符构成且以字符 0 作为结束标志的字符序列。14.假设N是符号常数,定义char strN=“China”;则为str数组定义的长度N应不小于 6 。15.指针变量唯一可以赋的整型值为 0 ,用符号常量表示为 NULL ;16指针变量指向数组时,可以做的算术运算包括 指针相减 、 指针加/减整数 或者 增1减1 ;17.设有申明 int a = 10, *p = &a; 则*p的值为 10 ,p的值为 a的地址&a ;18设a为整型变量且已赋值,p为指向整型的指针,则*(&a)的值等于 a ,则&(*p)的值等于 p ;19.设有申明int a = 34,23,89,21,36,28; int *p = &a1; 则p2的值为 21 ;*(a+4)的值为 36 ;20表达式ceil(-22.32)的值为 -22 ,c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- YS/T 3045-2022埋管滴淋堆浸提金技术规范
- 2025至2030年中国书架子数据监测研究报告
- 创新菜品考试题及答案
- 2019-2025年消防设施操作员之消防设备基础知识考前冲刺模拟试卷A卷含答案
- 2019-2025年消防设施操作员之消防设备基础知识考前冲刺模拟试卷A卷含答案
- 2019-2025年军队文职人员招聘之军队文职教育学通关题库(附答案)
- 2020年辽宁省沈阳市中考道德与法治试卷(含答案)
- 采购与质量分包合同(2篇)
- 高等教育自学考试《00102世界市场行情》模拟试卷三
- 2025年全国硕士研究生考试《管理类联考综合能力》模拟试卷一
- 经口鼻吸痰法护理课件
- 劳动教育课件劳动的意义
- 电气设备故障诊断及维修方法
- 2024年其他资格考试-WSET二级认证历年考试高频考点试题附带答案
- 06J403-1 楼梯、栏杆、栏板图集
- 课堂导入培训课件
- 静物速写课件
- 机电系统调试方案
- 肿瘤与睡眠障碍-分析肿瘤与睡眠障碍之间的联系及改善睡眠的方法
- 实验室感染性物质运输
- 部编人教版五年级下册道德与法治简答题归纳总结
评论
0/150
提交评论