西安交通大学14春学期《程序设计基础》离线作业Word格式文档下载.docx
- 文档编号:22559140
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:34
- 大小:33.97KB
西安交通大学14春学期《程序设计基础》离线作业Word格式文档下载.docx
《西安交通大学14春学期《程序设计基础》离线作业Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《西安交通大学14春学期《程序设计基础》离线作业Word格式文档下载.docx(34页珍藏版)》请在冰豆网上搜索。
6.数据类型转换
1.了解基本类型及其常量的表示法
2.掌握变量的定义及初始化方法
3.掌握运算符与表达式的概念
4.领会C语言的自动类型转换和强制类型转和赋值的概念
1.常用的数据类型、运算符
2.C语言表达式的表示
1.类型之间的转换
2.表达式的书写
1.程序执行过程中其值保持不变的量称为()。
它又可以分为()、()、()。
2.程序运行过程中不断改变的量称为(),在C语言中,它必须“(),后使用”。
3.实型变量分为()、()两种类型。
4.五种算术运算符分别是()、()、()、()、()。
5.由关系运算符连接表达式构成的式子,称为().其值为()或()。
1.下列关于标识符的说法不正确的是()
A.第一个字符必须是字母或下划线
B.第一个字符以后必须由字母、下划线或数字组成
C.大小写字母表示相同意义
D.标识符不能用C中的关键字
2.设:
x=9;
y=++x;
,则产生的结果是()
A.x=9;
y=9;
B.x=10;
y=10;
C.x=9;
D.x=10;
3.下列说法不正确的是:
()
A.++、--只能用于变量B.++、--比负号运算符的优先级要高
C.++、--的结合方向是:
自右至左D.++、--常用于循环变量表达式中
4.下列运算符优先级最高的是()
A.&
&
B.>
C.++D.!
5.设:
inta=4,b=5;
则表达式8>
4-!
0||2&
5>
4的结果为()
A.0B.1C.-1D.无法计算
三.简答题
1.字符常量和字符串常量有什么区别?
2.求下列算术表达式的值。
(1)x+a%3*(int)(x+y)%2/4
设x=2.5,a=7,y=4.7
(2)(float)(a+b)/2+(int)x%(int)y
设a=2,b=3,x=3.5,y=2.5
3.写出下面程序运行的结果.
(1)#include<
stdio.h>
voidmain()
{
inti,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf("
%d,%d,%d,%d\n"
i,j,m.n);
}
(2)#include<
inta=1,b,c;
b=a+1;
printf("
(1)b=%d\n"
b);
a=b+1;
(2)a=%d\n"
a);
c=(a+b)/2;
(3)c=%d\n"
c);
b=c+b;
(4)b=%d\n"
c+=a+b;
(5)c=%d\n"
4.设:
inta=3,b=2,c=1,d=4;
写出下列表达式的结果
(1)a+b>
c+d
(2)c>
a+b
(3)a>
b!
=c
(4)a==c+b
(5)a=b>
c
5.写出下面赋值表达式运算后a的值,设原来a=12,n=5。
a和n都定义为整型变量。
(1)a+=a
(2)a-=2(3)a
=2+3
(4)a%=(n%=2)(5)a/=a+a(6)a+=a-=a
=a
第三章C语言语句与结构化程序的三种基本结构
1.顺序结构程序设计
2.分支程序设计
3.循环程序设计
1.掌握几种常用的C语言语句
2.能够读懂基本的C语言程序
3.能够综合运用几种语句编写程序
1.几种语句的书写格式,使用方法
2.简单C语句的编写
1.各种语句的控制
2.简单C程序的编写
1.C语言的语句根据语句执行是否改变程序流程分为四类:
()、()、()、().
2.使用输入/输出函数的时候,要在源程序的开始位置,包含一个编译预处理命令:
3.()语句的作用是从switch、for、while或do-while语句中跳出来,终止这些语句的执行,把控制转到被中断的循环语句或switch语句之后去执行.
4.若有语句:
if(x<
y)
z=x;
elsez=y;
则可以用条件表达式来表示:
().
5.putchar()函数的函数功能是()。
二.选择题
1.下列类型中错误的是()
A.unsignedB.unsignedfloatC.unsignedlongintD.unsignedint
2.下列说法错误的是()
A.else总是和它上面的,离它最近的if配对
B.条件表达式可以不用括号括起来.
C.整个if语句在程序中被看作是一条语句
D.if语句中的各语句可以是一条语句,也可以是复合语句
3.关于switch语句说法不正确的是()
A.case的次序不影响执行结果
B.每个case语句后面的常量可以不同
C.在执行完一个case语句后转到下一个case语句执行
D.每个case语句后面表达式只能是常量
4.下列说法错误的是()
A.for语句中,<
表达式1>
、<
表达式2>
和<
表达式3>
都可以缺省.
B.<
缺省,系统会认为此处的值是0
C.for语句的三个表达式可以是任何类型的表达式
D.for语句可以嵌套使用
5.下面关于do-while语句和while语句说法正确的是()
A.while语句和do-while语句肯定都要执行
B.两者运行结果不同
C.do-while在判断条件之前先执行循环体一次
D.while语句至少执行一次
1.编写一个程序,要求能够将输入的任意一个三位数颠倒过来.
2.将三个整数输入计算机,编写程序,将居中的值显示出来.
3.编写一个求一元二次方程
的根的程序.
4.用双重循环输出9*9口诀。
5.编写如下程序:
从键盘先输入两个实数,再输入四则运算符“+”、“-”、“*”、“/”中的一个,然后进行四则运算.若输入其他字符,则显示出错信息.
第四章数组
1.一维数组
2.二维数组
3.字符数组
4.数组综合应用
1.了解一维数组、二维数组的基本概念
2.掌握数组类型变量的定义与引用
3.掌握数组元素的引用
1.一维数组、二维数组的定义与引用
2.字符数组的定义与引用、常用字符串处理函数及字符处理函数
3.数组的应用
1.数组引用与地址之间的关系
2.数组的综合应用
1.我们定义了一个含有N各元素的数组,那么下标的取值范围为()。
2.inta[4][5]定义了一个二维数组,假设a数组在内存中的起始地址为1000,则a[2][1]的地址为()。
3.对于数组inta[5][6]的数组元素的引用最多到()。
4.标准字符串处理函数的头文件是()。
5.Staticchara[15]={‘H’‘,’‘a’‘,’‘p’‘,’‘p’‘,’‘y’‘,’‘.’};
这个初始化语句中有9个数组元素没有给出初值,系统会自动对它们赋值为()或()。
1.关于数组,下列说法错误的是()
A.在任何一个数组中,数组元素的类型都是一致的
常量表达式>
不允许是变量
C.一维数组中的各个元素在内存中是按顺序存放的
D.C语言运行时要检查数组的边界,即下标值超界时,系统会报错
2.关于数组,下列说法正确的是()
A.对数组的初始化操作在定义数组的同时进行
B.给数组赋初值时,必须所有数组元素都被赋值
C.给数组元素全部赋初值时,一定要指明数组的大小.
D.引用数组元素的时候,可以一次引用数组中的全部元素
3.字符数组chara[]=”Howdoyoudo?
”;
的大小为()
A.10B.11C.14D.15
4.有如下的数组staticinta[10];
则()
A.该数组没有被初始化B.数组的所有元素都被赋值为0
C.数组的第一个元素是a[1]D.数组共有11个元素
5.关于字符数组,下列说法错误的是()
A.字符型数组中的每一个元素只能存放一个字符型数据
B.逐个输入输出字符时,要用“%c”格式符
C.scanf(“%s”,&
s);
的写法是正确的
D.数组名就是数组的起始地址
三.问答题
1.计算fibonacci数列的前15个数.Fibonacci数列具有以下特点:
第1和第2个数分别是0和1,从第3个数开始每个数是它前两个数之和.
2.用选择法对任意输入的一个10元整数数组排序(从小到大).
3.利用冒泡法将10个数组元素按从小到大顺序排列.
4.求一个3×
3矩阵对角线元素之和.
5.输入一行字符,统计其中有多少个单词.(单词以空格分隔,例如:
输入“Iamaboy”,有4个单词)
第五章函数
1.函数定义
2.函数参数与函数的返回值
3.函数的调用
4.函数嵌套调用和递归调用
5.数组作为函数参数
6.变量作用域
7.变量存储类别与生存周期
8.内部函数和外部函数
1.掌握函数的定义与调用
2.掌握函数参数的传递方式
3.领会变量存储类型的概念及各种存储类型变量的生存期和有效范围
4.领会函数的嵌套调用与递归调用
1.函数定义、函数调用、函数声明等基本概念
2.函数的嵌套调用与递归调用
3.数组作为函数的参数、变量的存储类别与作用域
1.函数的嵌套调用与递归调用
2.各种存储类型变量的生存期和有效范围
1.程序设计中,常常将重复使用的功能或功能独立的模块定义成一个()。
2.形参与形参的类型说明可以分开描述,如
fun(x,y,z)
intx,y,z;
也可以放在一起,写成:
()。
3.C程序必须从()函数开始执行。
4.静态存储变量分为:
()、()。
5.根据函数是否能被其他源程序文件调用,又将函数分为()和()。
二/选择题
1.以下说法错误的是()
A.C语言函数分为由系统提供的标准库函数和由程序员自己定义的函数
B.在主函数main()中可以调用其他函数,其他函数之间不可以相互调用
C.C语言的程序是由一个函数或多个函数组成的
D.对于一个很大的任务,一般把它分解成若干源文件,分别编写和调试
2.以下说法错误的是()
A.C程序必须从main()函数开始执行
B.所有函数在定义上讲都是相互独立的,不存在嵌套定义
C.C语言中有两类函数,系统提供的库函数和用户自定义的函数
D.参数的作用是向函数传递不同的数据
3.关于形式参数,下面说法错误的是()
A.对于形参,虽然定义了它,只有当函数被调用时,形参才在内存中开辟空间
B.调用结束后,形参自动从内存中被释放掉
C.在函数定义中,可以不给出形参类型,调用的时候再定义。
D.实参与形参的关系是赋值与被赋值的关系
4.关于return语句,下面说法错误的是()
A.它的功能是将表达式的值作为函数的返回值返回
B.函数中可以有多个return语句,执行到哪个就从那一个return语句返回
C.return可以返回多个值
D.return(表达式)语句中的表达式值的类型应与定义函数时函数的类型一致
5.关于函数调用,下面说法错误的是()
A.被调用函数必须是已经存在的函数、库函数或用户已定义过的函数
B.没有头文件也可以对库函数进行调用
C.如果使用用户自定义的函数,还要在主调用函数中说明用户函数的返回值类型.
D.在主函数main()中可以调用其他函数,其他函数也可以相互调用
三、简答题
1.指出下列程序中的错误或不合理之处,并改正.
main()
ints,x,n;
s=power(x,n);
power(y)
inti,p=1;
for(i=1;
i<
=n;
++i)
p=p*y;
}
2.编写一个程序,从键盘输入立方体的长、宽、高,在屏幕上输出立方体的体积.
3.编写一个程序,求1+1/2+1/3+……+1/n的值
4.写出下面程序的运行结果.
#include"
stdio.h"
sqr(x)
intx;
x=x*x;
return(x);
inti=25;
Thevalueofiinmain()beforcallingsqr(x)is%d\n"
i);
Callingsqr(x):
sqr(%d)=%d\n"
i,sqr(i));
Thevalueofiinmain()aftercallingsqr(x)is%d\n"
getch();
5.编写一程序,利用函数的递归调用求x的n次方的值,其中n为正整数.
第六章指针
1.指针的概念
2.指针变量
3.数组与指针
4.字符串与指针
5.函数与指针
6.指针数组与指向指针的指针
1.了解指针与地址的概念
2.掌握指针变量的定义、初始化及指针的运算
3.掌握指针与数组、指针数组、二级指针等知识
4.了解指针与函数的概念
5.掌握指针作为函数参数的应用
1.指针与地址的基本概念、指针与变量的关系
2.指针与数组
3.指针与字符串、指针数组与二级指针
4.指针的应用
1.指针与数组的关系
2.指针与字符串、指针数组与二级指针
1.如果有一个变量专门用来存放另一个变量的地址,则它称为(),当它的值为零时,我们称它为()。
2.写出下面3个表达式的含义:
(1)(*s)++:
(2)(*++s):
(3)(*s++):
3.有如下的表达式:
inta[20],*p;
p=a;
那么p+3表示的是()的地址.
4.任何能由数组下标完成的操作,都可以用()实现。
5.在C语言中,字符串实际上是指字符串第一个字符的(),所以字符串数组中的每一个元素实际上是每一个字符串的()。
6.由于指针变量直接指向变量,所以称为()。
而如果通过指向指针的指针变量来访问变量则构成()。
1.下面关于表达式:
inti,*ip=&
i说法正确的是()
A.此表达式写法错误
B.此表达式表示用&
i对ip进行初始化
C.此表达式表示用&
i对*ip进行初始化
D.此表达式表示用&
i分别对*ip和i进行初始化
2.关于指针,下列说法错误的是()
A.指针变量是用来存放内存地址的
B.&
表示取变量地址运算
C.*表示取指针变量所指向的变量内容的运算
D.可以将整数赋给指针变量
3.对于如下的表达式:
inta[3][4],*p;
p=*a;
执行p++操作之后,*p表示取()的内容.
A.a[0][0]B.a[1][0]C.a[1][1]D.a[0][1]
4.以下说法错误的是()
A.int(*p)();
表示p被定义为一个指向返回值为整数的函数的指针
B.使用指向函数的指针是结构化程序设计的一种有效手段.
C.char**p相当于char*(*p)
D.指针数组的元素补仅能存放地址,还可以存放其他数组的元素.
1.用指针设计一个可以计算字符串长度的程序.
2.编写一个可以实际交换两个变量数值的函数.
3.想输出a数组10个元素,用以下程序行不行?
为什么?
请修改程序使之能实现题目要求.
#include<
inta[10]={1,2,3,4,5,6,7,8,9,10},i;
for(i=0;
10;
i++,a++;
)
{
%d"
*a);
}
4.写出下面2个程序的运行结果.
(1)
#include<
intmax(intx,inty)
return(x>
y?
x:
y);
inta=10,b=12;
int(*p)();
p=max;
(*p)(a,b));
(2)
char*ps="
thisisabook"
;
intn=10;
ps+=n;
%s\n"
ps);
(3)
inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int*pa[3];
int*p=a,i;
3;
i++)
pa[i]=a[i];
%p--%d\n"
pa[i],*pa[i]);
intj;
for(j=0;
j<
j++)
{printf("
%p--%d"
p,*p);
p=p+1;
\n"
);
5.写一个程序,求一个字符串的长度,在main函数中输入字符串,并输出其长度.
6.什么是双重指针?
请自己编写一个使用双重指针的程序,并运行之.
第七章结构体与共同体
1.结构体的概念与定义
2.结构体数组
3.结构体与指针
4.结构体作为函数参数
5.动态数据结构――链表
6.位段
7.共同体
1.掌握结构体和共用体类型的说明、结构体和共用体变量的定义及初始化方法
2.掌握结构体与共用体变量成员的引用
3.领会存储动态分配和释放
4.领会链表的基本概念和基本操作
5.领会枚举类型变量的定义
6.了解typedef的作用
1.结构体的基本概念、结构类型及变量的定义、结构数组
2.用指针处理链表
3.共用体及枚举类型的基本概念、typedef的基本概念
1.存储动态分配和释放
1.C语言用()描述由多个有一定内在联系、但通常类型不完全相同的数据项组合而成的数据。
2.在C语言中,为了直观和使用方便,可以把(*pstu).score改用为()来代替。
3.在编制程序时,有时需要把一个结构变量的值传给另一个函数,但是旧的C标准不允许把结构整体作为一个参数传给另一个函数。
结构传递给函数时,一般采用()传递方式。
4.链表的每个结点包含()和()两部分,链指针总是指向链表中的()。
5.使用动态申请空间的标准库函数的时候,必须包含头文件()。
6.所谓建立链表是指从无到有地建立起一个链表,即()。
7.链表的遍历是指()。
1.结构体如下所示:
structemployees;
charname[30];
intage;
floatwage;
};
下面说法错误的是:
A.上述形式的定义在程序运行时不会为该结构体类型分配内存空间。
B.结构体变量在内存中存放时,占用连续的一段存储空间
C.上述结构体必须有关键字struct
D.上述结构体成员的类型不可以是已经定义过的结构体类型。
2.关于结构体,下列说法错误的是()
A.不能将一个结构体变量作为一个整体进行输入和输出。
B.对成员变量可以像普通变量一样进行各种运算。
C.结构体变量的地址主要用作函数参数传递结构体的地址。
D.结构体变量赋初值与数组不同,可以不一一对应。
3.关于链表,下列说法错误的是()
A.链表是动态分配的一种结构,它根据需要开辟内存单元
B.链表有头指针变量head,它是链表的第一个结点
C.如果要在链表中增加新的结点,需要申请存储空间
D.如果不再使用链表,则应释放所占的存储空间
4.以下函数,哪个不属于动态申请空间的标准库函数()
A.malloc()B.calloc()C.free()D.strcmp()
5.关于链表的插入和删除,下列说法错误的是()
A.插入位置包括表头、表中和表尾
B.从链表中删除一个结点,就是把它从内存中抹掉。
C.要删除链表中的某个结点,需自己定义删除函数。
D.删除结点要注意删除的结点是否是头结点
1.写出下面程序的运行结果
#include"
structstudent
intx;
charc;
}a;
f(structstudentb)
b.x=20;
b.c='
y'
a.x=3;
a.c='
a'
f(a);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计基础 西安交通大学 14 学期 程序设计 基础 离线 作业
![提示](https://static.bdocx.com/images/bang_tan.gif)