C语言老师所给习题解答(6)

2019-09-02 17:47

26 return 0; }

150. 下列程序段中,有错误的是___.

int f() { int x; scanf(\x+5; }

int f2() { return (x>1?printf(\

int main() { float a=2.6 , b; b=max(2.1,3.6)=a++; printf(\ void change(int x, int y) { int t; t=x; x=y; y=t; } 151. 有如下程序: #include long f(int n) {

if(n>2) return (f(n-1) + f(n-2)); else return (2); }

void main() {

printf(\}

该程序的输出结果是___.4

152以下程序运行后,输出结果是___.35 #include fun(int a, int b) { int c; c=a*b; return c; }

void main() {

int x=3, y=4,z=5, k; k=fun((x--, y++, x+y), z--); pirntf(\}

153. C编译系统对文件包含命令#include \的处理通常是在___.编译处理之前

154. 在文件包含预处理的定义中,#include后的文件名用<>括起来时,寻找被包含文件的方式是___.系统的标准方式搜索

155. 下面对宏定义的描述,不正确的是___.

宏替换并不检查替换后的源程序的语法错误 宏名不存在类型的问题,它的参数也不存在类型问题 宏替换不占用程序运行时间

带参数宏在展开的时候,先求出实参表达式的值,然后再代入形参,并计算求值 156. 下面的叙述中,错误的是___.

#include命令可以包含扩展名为\的文件

27

#include <…>中可以包括路径

#include \是一个正确的文件包含命令 使用#include <…>比#include \节省编译时间

157在宏定义#define PI 3.14159中,用宏名PI代替一个___.字符串 158. 下列叙述中,正确的是___.

引用带参数宏时,实际参数的类型应与宏定义时的形式参数类型相一致 宏名必须用大写字母表示

宏替换不占用运行时间,只占用编译时间 在程序的一行上可以出现多个有效的宏定义

159. 设有宏定义命令:#define SUM 2+3,则表达式5+SUM*5的值为___.22 160. 设有以下宏定义,则执行语句x=2*(N+Y(5+1));后,x(设x为整型)的值是___.48 #define N 3

#define Y(n) ((N+1)*n)

161. 下列程序运行结果是___.8 #include #define N 2 #define M N+1

#define NUM (M+1)*M/2 int main( ) {

int i,n=0;

for(i=1;i<=NUM;i++) n++;

printf(\return 0; }

162. 对于基类型相同的两个指针变量之间,不能进行的运算是___.+ 163. 若有定义float *p, m;,则以下正确的表达式为___. p=&m

164. 若有定义:char *p1, *p2, *p3, *p4, ch; 则不能正确赋值的程序语句为___. p1=&ch; scanf(\

p2=(char *)malloc(1); scanf(\ *p3=getchar(); p4=&ch; *p4=getchar();

165. 若有以下定义,且0<=i<10,则对数组元素的错误引用是___. a(p-a) int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, *p, i; p=a;

166. 若有以下定义,且0<=i<10,则对数组地址的正确表示是___. &p[i] int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, *p, i; p=a;

167. 已知p,p1为指针变量,a为数组名,i为整型变量,下列语句不正确的是___. p=&I p=p1 p=&a[i] p=10 168. 若有定义:int a[10], *p=a; 则p+5表示___.元素a[5]的地址 169. 如有定义:int b[]={1, 2, 3, 4}, y, *p=b+1; 执行y=*p++后,y的值为___.2 170. 以下对指针变量的操作中不正确的是___. int a=5, *p; p=a; 171. 若有以下语句,则&a[2]-p的值为___.2 int a[3], *p=a; 172. 若有程序段: int b[4], *p, *q; p=&b[1]; q=&b[3];

则q-p表示的意义是___. p与q之间数据个数

173. 若有定义char d[15], *p=d;,则以下正确的赋值语句是___. d[0]=\ d=\

28

*p=\ p=\ 174. 若有定义int b[3][4];,则对数组元素b[2][3]不正确的引用是___. *(b[2]+3) *(*(b+2)+3) (*(b+2))[3] *(b+2)[3]

175. 若有定义int m[2][3], (*p)[3]=m;,且0<=i<2,0<=j<3,则以下不正确的引用数组元素m[i][j]的方式是___. *(p[i]+j) *(*(p+j)+j) (*(p+i))[j] *((&p+i)+j) 176. 若有程序段 int **p, *q[5]; p=q;

则以下不正确的叙述是___. 执行语句p=q;后p指向q[0] p+3就是q[3]的地址 **(p+3)与*q[3]等价 q与p都不是指针常量

177. 下面结构体数组的定义,错误的是___.

struct student { int num; char name[10]; float score; }; struct { int num; char name[10]; float score; } stu[30];

struct student { int num; char name[10]; float score; } stu[30]; struct stu[30] { int num; char name[10]; float score; };

178. 若有如下定义,则能打印出字母M的语句是___. printf(\ struct pe {

char name[9]; int age;

}ca[4]={{\

179. 若有以下语句和说明,下面程序在VC++6.0环境中的输出结果为___12 void main() {

struct{char a[10]; int b;}x; printf(\}

180. 设有如下语句___.可用T定义结构体变量 typedef struct S { int g; char h; }T;

181. 如有以下定义 struct person {

char name[9]; int age; };

struct person class[10]={\根据上述定义,能输出字母M的是___. printf(\

29

182. 设有如下定义: struct sk { int a; float b; }data; int *p;

若要使p指向data的a域,正确的赋值语句是___. p=&data.a;

183. 下面程序的输出结果是___. 26 30 11 struct t { int x; int *y;

184. 一个整数2000,在内存中占2个字节.如果按ASCII码形式输出,则占的字节数是___.4 185. 在C语言中,文件存取的基本单位是___.字节

186. 在C语言中,从文件中将数据读到内存中称为___.输入

187. 以下正确的打开与关闭文件命令是___. fopen(fp, \

188. 以读写方式打开一个已存在的文本文件fd.dat,下面fopen函数正确的调用方式是___. FILE *fp; fp=fopen(\

189. C语言中的文件类型只有___. ASCII文件和二进制文件两种 190. C语言中文件的存取方式是___.可以顺序存取,也可以随机存取

191. 若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为___.0 192. 下列关于C语言数据文件的叙述中正确的是___.

文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

193若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是___. fopen(\

}*p;

int d[4] ={5,10,15,20} ;

struct t x[4]={25,&d[0],30,&d[1],35,&d[2],40,&d[3]}; int main() { p=x;

printf(\printf(\printf(\return 0; }


C语言老师所给习题解答(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:足阳明经络与腧穴试题与答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: