您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页四川大学c语言期末试题(版)

四川大学c语言期末试题(版)

来源:意榕旅游网
一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内。每小题1分,共16分)1.对于一个正常运行的C程序,以下叙述中正确的是A 。 A)程序的执行总是从main函数开始,在main函数结束 B)程序的执行是从程序的第一个函数开始,在main函数结束 C)程序的执行是从main函数开始,在程序的最后一个函数中结束 @ D)程序的执行是从程序的第一个函数开始,在程序的最后一个函数中结束 2.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是B 。 A)字母 B)减号 C)数字字符 D)下划线 3.下列定义变量的语句中错误的是 C 。 A)int _if; B)double If; C)char forch D)float x&; 4.以下选项中可作为C语言合法常量的是 A 。 A)-80 B)-0819 C) D) 5.以下能正确定义且赋初值的语句是 。 A)int a=b=16; C)float x=x+; 是 。 ¥ B)char c=97; D)double x=设有定义:“int a=1,b=6,c=8;”,则以下选项中值为0的表达式A)(!a==1)&&(!b==0) C)a && b B)(a0 || E<0) C)(E==0) D)(!E==0) 9.以下数组定义中错误的是 B 。 $ A)int x[][3]={0,1,2,3}; B)int x[2][3]={{1,2}, {3,4}, {5,6}}; C)int x[][3]={{1,2,3},{4,5,6}}; D)int x[2][3]= {1,2,3,4,5,6}; 10.在C语言中,函数返回值的类型最终取决于 。 A)函数定义时的函数首部所说明的函数类型 B)return语句中表达式值的类型 C)调用函数时的实参的类型 D)函数定义时形参的类型 11.设已有定义:“float a;”,则以下对指针变量p进行定义且赋初值的语句中正确的是 。 , A)float *p = 1068; C)float p=&a; B)int *p= (int)a; D)float *p=&a; 12.若有说明语句:“float *p,a;”,则能通过scanf语句正确给输入项读入数据的程序段是 。 A)*p=&a; scanf(\"%f\ C)p=&a; scanf(\"%f\ 13.若有以下说明和定义: union dt { short int a; char b; — double c; } data; B)*p=&a; scanf(\"%lf\ D)p=&a; scanf(\"%f\ 以下叙述中错误的是 。 A) data的每个成员起始地址都相同 B)变量data所占的内存字节数与成员c所占字节数相等 C)程序段“=6;printf(\"%f\\n \”输出结果为 D) data可以作为函数的实参 14.以下叙述中正确的是 。 A)在源文件的一行上可以有多条预处理命令 B)宏名必须用大写字母表示 ; C)宏替换不占用程序的运行时间 D)前面都是错语的 15.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为 。 A)EOF B)1 C)0 D)NULL 16.以下叙述中错误的是 。 A)改变函数形参的值,不会改变对应实参的值 B)函数可以返回地址值 C)可以给指针变量赋一个整数作为地址值 D)函数的形参可为指针类型 二、填空题(第小题2分,共14分) ~ 1.已定义“char ch=6;int i=6,j;”,执行“j=ch || i++”以后,i的值为 。 2.设有定义语句:“int a[][8]={{0},{1},{2}};”,则数组元素a[1][2]的值为 。 3.已知int a=3,a的地址为1008,则&a= 。 4.设有定义:“FILE *fp;”,请将以下打开文件的语句补充完整,以便可以向文本文件的最后续写内容。 fp = fopen)(\"\ \"); 5.已有定义:“int *p;”,请写出完整的语句,利用malloc函数使p指向一个整型的动态存储单元 。 6.声明外部变量的关键字是 extrun 。 7. int 类型的变量的值只能是所指定的若干名字之一。 三、阅读下面各程序,写出运行结果(每小题5分,共30分) 1.有以下程序: #include <> int main(void) { char al = 'M', a2 = 'm', a3 = 'u'; printf(\"%c\\n\ return 0; } (运行结果是: 2.有以下程序: #include <> & int main(void) { int k = 6; while (--k) printf(\"%d\ return 0; } 运行结果是: 3.有以下程序: #include <> int main(void) \" { int i = -1; do printf(\"%d\ printf(\"%d\\n\ return 0; } 运行结果是: 4.有以下程序: #include <> double fun1(double a) { return a * a; } | int fun2(double x, double y) { double a = fun1(x), b = fun1(y); return a + b; } int main(void) { int w = fun2, ; printf(\"%d\\n\ return 0; — } 运行结果是: 5.有以下程序: #include <> int f(int n) { if (n == 1) return 1; else return n + f(n - 1); } int main(void) > { printf(\"%d\\n\ return 0; } 运行结果是: 6.有以下程序: #include <> void point(char *p){ p += 5; } int main(void) { % } 运行结果是: 四、程序填空题(每空2分,共12分) 1.以下程序的功能是:输出a、b、c三个变量中的最小值。将程序补充完整。 #include <> int main(void) # { int a, b, c, t1, t; scanf(\"%d%d%d\ t = a < b [1] ; t = c < t [2] ; printf(\"%d\\n\ return 0; } char b[] = {'a', 'b', 'c', 'd', 'f', 'g'}, *p = b; point(p); printf(\"%c\\n\ return 0; 2.以下程序调用invert函数按逆序重新放置a数组中元素的值。a数组中元素的值在main函数中读入。将程序补充完整。 #include<> { #define N 10 void invert(int s[], int i, int j) { if (i < j) { int t= s[i]; s[i] = s[j]; s[j] = t; invert(s, [3] , j-1); } ! } int main(void) { int a[N], i; for (i = 0; i < N; i++) scanf(\"%d\ [4] ); /* 输入a[i] *// ) } invert(a, 0, N - 1); for (i = 0; i < N; i++) printf(\"%d \ printf(\"\\n\"); return 0; 3.下面的程序通过函数average计算数组中各元素的平均值,将程序补充完整。 #include <> float average(int a[], int n) { int i; float s = 0; for (i = 0; i < n; i++) s = s + [5] ; ) return s / [6] ; } int main(void) { int i, a[5] = {2, 4, 6, 8, 10}; float mean; mean = average(a, 5); printf(\"mean=%f\\n\ return 0; } 五、编程题(每小题14分,共28分) 1.输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。 2.编程实现从键盘上输入一个字符串,把此字符串中的小写字母转换成大写字母,输出到文件中,然后从该文件读出字符串并显示出来。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务