专升本C语言历年试题及答案
专升本C语言历年考试题及答案解析

专升本C语言历年考试题及答案解析Revised final draft November 26, 2020专升本C语言历年考试题及答案一、单项选择题1. C语言源程序文件经过C编译程序编译连接之后生成一个后缀为__C____的文件。
A、”.c”B、“.obj”C、“.exe”D、“.bas”2. 以下选项中不正确的整型常量是_C____。
A、 12LB、 -10C、 1,900D、 123U3. 表达式___C___的值是0。
A、3%5B、3/5.0C、3/5D、3<54. 表达式 !(x>0||y>0) 等价于__D___。
A、!x>0||!y>0B、!(x>0)||!(y>0)C、!x>0&&!y>0D、!(x>0)&&!(y>0)5. 若变量已正确定义并赋值,表达式__D____不符合C语言语法。
A、4&&3B、+aC、a=b=5D、int(3.14)6. 若变量已正确定义,执行语句scanf("%d%d%d ",&k1,&k2,&k3);时,___B___是正确的输入。
A、2030,40B、20 30 40C、20, 30 40D、20, 30,407. 执行语句printf(” __D____”, 2); 将得到出错信息。
A、%dB、%oC、%xD、%f8. 设变量定义为“int s[ ]="hello\nworld\n";”,则数组s中有__B____个元素。
A、12B、13C、14D、159. 设变量定义为“int a[2]={1,3}, *p=&a[0]+1;”,则*p的值是___B__。
A、2B、3C、4D、&a[0]+110. 若变量已正确定义并赋值,表达式 -k++ 等价于__A____。
c语言专升本试题及答案

c语言专升本试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义变量的关键字是()。
A. varB. letC. intD. define答案:C2. 下列哪个选项不是C语言中的运算符?()A. %B. &&C. ==D. ||答案:B3. 在C语言中,用于定义一个结构体的关键字是()。
A. structB. unionC. enumD. typedef答案:A4. 下列哪个选项是合法的C语言函数声明?()A. int fun(int a, int b);B. int fun();C. int fun(int a, b);D. int fun(int a, int b) { ... }答案:A5. C语言中,用于定义一个二维数组的语法是()。
A. int array[3][2];B. int array[3][];C. int array[][2];D. int array[2,3];答案:A二、填空题(每题2分,共20分)1. C语言中,用于表示逻辑“与”操作的运算符是____。
答案:&&2. C语言中,用于表示逻辑“或”操作的运算符是____。
答案:||3. C语言中,用于表示逻辑“非”操作的运算符是____。
答案:!4. 在C语言中,用于定义一个字符类型的数组的关键字是____。
答案:char5. C语言中,用于声明一个无返回值的函数的关键字是____。
答案:void三、简答题(每题10分,共20分)1. 请简述C语言中指针的概念。
答案:指针是C语言中的一种数据类型,它存储了另一个变量的内存地址。
通过指针,程序可以直接访问和操作内存中的数据。
2. 请简述C语言中函数的作用。
答案:函数是C语言中封装代码块的一种方式,它允许将一段代码和相关的数据封装在一起,以便于复用和模块化编程。
四、编程题(每题20分,共40分)1. 编写一个C语言程序,实现求两个整数的和。
专升本C语言历年试题及答案

专升本C语言历年试题及答案专升本C语言历年考试题及答案一、单项选择题1._isw 是合法的用户自定义标识符。
2.若变量已正确定义并赋值,表达式3.14%2 不符合C语言语法。
3."a" 是不正确的字符常量。
4.在C程序中,用 1 表示逻辑值“真”。
5.float x=3.14.y=x。
把x、y定义成float类型变量,并赋同一初值3.14.6.若变量已正确定义,表达式 1^3 的值不是2.7.若变量已正确定义,语句“if(a>b) k=0.else k=1;”和k=(a<=b)?1:0.等价。
8.设变量定义为“int a。
b;”,执行下列语句时,输入a=10.b=10,则a和b的值都是10.scanf("a=%d。
b=%d",&a。
&b);9.下列程序的输出结果是 0.fun(int a。
int b。
int c)c =a*b。
}void main( )int c=0;fun(2,3,c);printf("%d\n",c);}10.在C程序中,如果函数类型未被声明,则函数的隐含类型为int。
11.表达式strlen("hello")的值为5.13.对于变量定义int x。
*p=,&*p相当于p。
14.如果变量已经被正确定义,p=NULL不能使指针p成为空指针。
17.基于相同的基类型,两个指针变量之间不能进行加法运算。
18.程序输出4.19.缺少完整的定义。
struct person {char name[9];int age;struct person class[10] = {Johu"。
17}。
XXX"。
19}。
XXX"。
18}。
Adam"。
16}改写:定义了一个person 结构体,用于存储人名和年龄,然后定义了一个长度为 10 的 class 数组,存储了四个人的信息。
c语言专升本试题及答案

c语言专升本试题及答案第一部分:选择题(共10题,每题2分,共20分)1. C语言中,以下哪个符号表示“不相等”?A. !=B. ==C. >D. <>2. 在C语言中,以下关键字用于定义常量的是:A. constB. staticC. externD. register3. 执行下列代码后,x的值是多少?int x = 10;x += x - x * 3;A. -10B. 0C. 10D. 204. 下列代码中,哪个是合法的数组定义?A. int arr[10];B. float arr[10.5];C. char arr[];D. bool arr[5];5. 以下哪种循环结构是“前测试循环”?A. for循环B. while循环C. do-while循环D. 都不是6. 下列代码中,哪行会引起编译错误?A. int a = 10;B. char b = a;C. float c = 2.5;D. double d = 2.5;7. 在C语言中,以下哪个运算符具有最高优先级?A. 加法运算符(+)B. 乘法运算符(*)C. 括号运算符(())D. 逻辑与运算符(&&)8. 下列代码中,哪个是正确的函数调用?A. max(5, 10);B. max(int a, int b);C. int max(int a, int b) { return a > b ? a : b; }D. int max(a, b) { return a > b ? a : b; }9. 下列哪个关键字用于定义结构体?A. structB. typedefC. unionD. sizeof10. 下列哪个函数用于释放动态分配的内存?A. calloc()B. realloc()C. malloc()D. free()第二部分:填空题(共5题,每题4分,共20分)1. C语言中,用于输出到控制台的函数是________。
专升本C语言题及答案

专升本C语言题及答案C语言精编100题一、单选题 1. 由C语言编写的代码程序( ) A.可直接执行 B. 是一个源程序 C. 经过编译即可执行D. 经过编译解释才能执行 2. 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( ) A. 大写字母 B. 中划线C. 数字字符D. 下划线 3. 下列选项中,不能用作标识符的是( ) A. _1234_ B. _1_2 C. int_2_ D. 2_int_ 4. 以下选项中合法的用户标识符是( ) A. long B. _2Test C.3Dmax D. A.dat 5. 以下不能定义为用户标识符的是( ) A.Main B. _0 C. _int D. sizeof 6. 下列定义变量的语句错误的是( ) A. int _int; B. double int_; C. char For; D.float US$; 7. 在C语言中,合法的实型常数是( ) A. 5E2.0 B.E-3 C. 2E0 D. 1.3E 8. 在C语言中,合法的实型常数是( )A. 1.2E0.5B. 3.14159EC. 5E-3D. E15 9. 以下选项中,不能作为合法常量的是( ) A. 1.234e04 B. 1.234e0.4 C.1.234e+4 D. 1.234e0 10. 以下不合法的数值常量是( ) A. 011B. le1C. 8.0E0.5D. 0xabcd 11. 在C语言中,非法的字符常量是( ) A.‘\t’ B.‘\17’ C. “\n“ D.‘\xaa’ 12. 以下不合法的字符常量是( ) A.‘\018’ B.‘\“’ C.‘\\’ D.‘\xcc’ 13. 下列运算符中优先级最高的运算符是( )( ) A. = B. = C. % D.A. ==B. /C. =D. = 14. 以下程序的输出结果是( )main() { int a=3,b=4; printf(“%d\n“,a=b); } A. 3 B.4 C. 1 D. 0 15. 在C语言中,以下非法的表达式是( ) A.0=x=100 B. i=j==0 C. (char)(65+3) D. x+1=x+1 16. 在C语言中,以下非法的赋值语句是( ) A. j++; B. ++(i+1); C.x=j0; D. k=i==j; 17. 表达式3.6-5/2+1.2+5%2的值是( ) A.4.3 B. 4.8 C. 3.3 D. 3.8 18. 设有语句:inta=3;则执行了语句a+=a-=a*a;变量a的值是( ) A. 3 B. 0 C. 9 D. -12 19. 设有语句:int x=10;则执行了语句x+=x-=x-x;变量x的值是( ) A. 10 B. 20 C. 40 D. 30 20.以下程序的输出结果是( )( )( )( )( ) ⑴ main() { inti=10,j=1; printf(“%d,%d\n“,i--,++j);} A. 9,2 B. 10,2C. 9,1D. 10,1 ⑵ main() { int a=12,b=12; printf(“%d %d\n“ ,--a,++b);} A. 10 10 B. 12 12 C. 11 10 D.11 13 ⑶ main() { int x=023; printf(“%d\n“,--x);} A. 17 B.18 C. 23 D. 24 ⑷ main() { int x=10,y=10;printf(“%d %d\n“,x--,--y);} A. 10 10 B. 9 9 C. 910 D. 10 9 ⑸ main() { int i=010,j=10; printf(“%d,%d\n“,++i,j--);} A. 11,10 B. 9,10 C. 010,9 D.10,9 21. 以下程序的输出结果是( ) main() { int x=100,y=200;printf(“%d\n“,(x,y)); } A. 200 B. 100 C. 100 200 D)200 100 22. 以下程序的输出结果是( ) main() { intx=10,y=3,z; printf(“%d\n“,z=(x%y,x/y));} A. 1 B. 0C. 4D. 3 23. int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( ) A. k++ B. k+=1 C. ++k D. k+1 24. 以下程序的输出结果是( ) main() { int x,y,z; x=y=1;z=x++,y++,++y; printf(“%d,%d,%d\n“,x,y,z); } A. 2,3,3 B.2,3,2 C. 2,3,1 D. 2,2,1 25. 设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( ) A. 1 B. 2 C.3 D.4 26. 设int x=-1;执行表达式++x||++x||++x||++x,x的值是( ) A. 0 B. 1 C. 2 D. 4 27. 以下程序的输出结果是(1) main(){ int k=11; printf(“k=%d,k=%o,k=%x\n“,k,k,k);}() A. k=11,k=12,k=11 B. k=11,k=13,k=13 C.k=11,k=013,k=0xb D. k=11,k=13,k=b (2) main(){ int k=17;printf(“%d,%o,%x\n“,k,k,k); }() A. 17,021,0x11 B.17,17,17 C. 17,0x11,021 D. 17,21,11 28. 运行时从键盘上输入9876543210CR(CR表示回车),则该程序的输出结果是()main() { int a;float b,c; scanf(“%2d%3f%4f\n“,a,b,c); printf(“a=%d,b=%f,c=%f\n“,a,b,c);} A.a=98,b=765,c=4321 B. a=10,b=432,c=8765 C.a=98,b=765.000000,c=4321.000000 D. a=98,b=765.0,c=4321.029. 设变量均已正确定义,若要通过scanf(“%d%c%d%c“,a1,c1,a2,c2);语句为变量 a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。
专升本C语言历年考试题及答案10

专升本C语言历年考试题及答案10一、单项选择题(1~30题每小题1分,3—45题每小题2分,共60分)1.以下合法的用户自左义标识符是(D)。
A、b-b float2.若变量已正确定义并賦值,A、a*b/c; B. %23.下列不正确的字符常量是A、*、C、D、Jsw 以下不符合C语言语法的表达式是(B)oC、2, b(C)D、a/b/cD、C、F(B)C、非1的数把X、y泄义成float类型变量,并赋同一初值是(C) A、float x z y=;C、float x=z y=x=;若变量已正确泄义,A、2&3 B.若变量已正确泄义,A、k=(a>b)l:0;C、k=a<=b; 设变量定义为"int a, IO!'4.在C语言中,表示逻辑值“真”用B、非0的数A、1 D、大于0的数5.6.7.8.9.10.B、float x, y=2*;D、float x=y=;值不为2的表达式是(C)1?1 C、a==2D、1A3和语句“if(a>b)k=0; else k=l;” 等价的是(C)B、k=a>b;D、a<=b 0 : 1;执行下列语句时,若a和b的值都是20,则应输入(D)scanf(,,a=%d/ b=%d"/&a/ &b):A、10 10B、10, 10下列程序的输出结果是(D) fun(inta, int b, int c){ C =a*b; }void main(){ int c;fun(2,3/C); printf("%dn”:c);}A. 0C、a=10 b=10D、a=10, b=10B、1C、在c程序中,若对函数类型未加说明,B、doubleC、voidAx int表达式strlen(〃hello")的值是(B)A. 4 B、56 D、无法确定则函数的隐含类型为(A)D、charB、C、6D、712.设变量左义为“int a[4]/\则不符合C语言语法的表达式是(D)A、*aB、a[0]C、aD、a++13.设变量定义为“int x, *p=&x/\则&相当于(A)A^ p B、*p C、x D、水&x14.若变量已正确左义,不能使指针p成为空指针的是(A)A、p二EOF B. p=0 C. D、p=NULL15.对于以下的变量泄义,不符合C语言语法的表达式是(D)struct node {int len;char *pk;} x = {2, l,right,,}/ *p = &xA、p->pkB、* C> *p->pk D、*16.有如下程序int runc(int a,int b){return(a+b);}mainO{int x=2,y=5/z=8,r;r=func(func(x,y),z);printf("%\d\n",rj;}该程序的输出的结果是(D)A)12 B) 13 C) 14 D) 1517.对于基类型相同的两个指针变量之间,不能进行的运算是(C)A)< B) = C) + D)-18.有如下程序long fib(int n){if(n>2) return(fib(n-l)+fib(n-2));else return(2);}mainO{printf("%d\n",fib(3));该程序的输出结果是(B)A} 2 B} 4 C} 6 D} 819.有如下定义struct person{char name[9]; int age;};strict person class[10]={//Johu,/, 17,"Paul", 19^Mary7; 18,"Adam 16J;根据上述定义,能输出字母M的语句是(D)A)prinft("%c\n",class[3].mane);B)pfintf("%c\n〃,class[3]?name⑴);C)prinft(zz%c\n,,,class[2].name[l]);D)printf(z/%A c\n,,/class[2].name[O]);20.以下所列的C语言常量中,错误的是(B)A)OxFF B) 0?5C2LD)*72〃21.有以下程序段int k=0while(k=l)k++;while循环执行的次数是(A)A)无限次B)有语法错,不能执行C) 一次也不执行D)执行1次22.以下程序的输出结果是(C)A) 0 B) 29 C) 31 D)无定值fun(int X, int y, int z){z=x*x+y*y;}main(){int a=31;fun(5,2,a); printf("%d",a);}23?下列程序段的输出结果是(A)A) 2143 B) 1212 C) 1234 D) 2112void fun(int *x, int *y){ printf("%d %d", *x, *y); *x=3; *y=4;} main(){int x=l z y=2;fun(&y,&x);printf("%d %d",x, y);}24.当调用函数时,实参是一个数组名,则向函数传送的是(B)A)数组的长度B)数组的首地址C)数组每一个元素的地址D)数组每个元素中的值25.以下程序的输出结果是(A)A) 1 B) 2 C) 3 D) 4long fun( int n){long s;if(n= =1 11 n= =2) s=2;else s=n?fun(n-1);return s;}main(){printf("%ld\n", fun(3));}26.以下程序的输出结果是(B)A) 16 B) 2 C) 9 D) 1#define SQR(X) X*Xmain(){int a=16, k=2, m=l;a/=SQR (k+m)/SQR( k+m); printf("d\n",a);}27.有以下程序main(){int m=3z n二4,x;x=-m++;x=x+8/++n;printf(”%d\n 蔦x);}程序运行后的输岀结果是:(D)A)3 B)5 C)-l D)-228.以下叙述中正确的是:(A)A)构成C程序的基本单位是函数B)可以在一个函数中左义另一个函数C)main()函数必须放在其它函数之前D)所有被调用的函数一定要在调用函数之询进行定义29.以下选项中非法的表达式是:(D )A) 0<=x<100 B) i=j==OC) (char)(65+3) D) x+l=x+l30.下列条件i吾句中,功能与英他语句不同的是:(D)A)if(a) printff”%d\n':x); else printf(l,%d\n"/y);B)if(a==O) printf(”%d\n”,y); else printf(”%d\n舄x);C)if (a!=0) printf(”%d\n”,x); else printf(吆d\n蔦y);D)if(a==O) printf(,,%d\n,l,x); else printf(”%d\n笃y);31.以下不能定义为用户标识符的是:(D )A) scanf B) Void C) _3com_ D) int32.C语言中用于结构化程序设计的三种基本结构是:(A)A)顺序结构、选择结构、循环结构B) if. switch, breakC) for% while、do-while D) if^ for、continue33.若有说明语句:inta,b,c,*d=&c:,则能正确从键盘读入三个整数分别赋给变量a、b、c 的语句是:(A )A) scanf(,,%d%d%d,,/&a/&b/d); B) scanf(l,%d%d%d l,/&a,&b,&d);C) scanf(,,%d%d%d,,/a,b z d); D) scanf(,,%d%d%d"/a/b/*d);34.若有定义:intaa[8];。
专升本考试c语言试题及答案

专升本考试c语言试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,不正确的是()。
A. C语言是一种高级编程语言B. C语言可以直接被计算机执行C. C语言具有结构化编程的特性D. C语言可以用于系统软件开发答案:B2. C语言中,用于定义变量的关键字是()。
A. varB. defineC. intD. let答案:C3. 下列选项中,不是C语言标准库函数的是()。
A. printfB. scanfC. strcpyD. strcat答案:D4. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. char str[6] = "Hello";C. char str[] = 'Hello';D. char str[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; 答案:A5. 下列关于C语言数组的描述中,正确的是()。
A. 数组下标从0开始B. 数组可以是多维的C. 数组的大小在定义时可以改变D. 数组可以存储不同类型的数据答案:B6. C语言中,用于实现循环结构的关键字是()。
A. forB. whileC. repeatD. do答案:A7. 下列选项中,表示逻辑与运算符的是()。
A. &&B. ||C. !D. =答案:A8. 在C语言中,用于定义函数的关键字是()。
A. functionB. defC. intD. void答案:D9. 下列关于C语言指针的描述中,正确的是()。
A. 指针可以存储变量的地址B. 指针可以存储变量的值C. 指针不能存储数组的地址D. 指针不能存储函数的地址答案:A10. 在C语言中,用于实现条件选择的关键字是()。
往年专升本c语言试题及答案

往年专升本c语言试题及答案一、单项选择题1. C语言中,用于定义一个结构体类型的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中合法的变量名?A. _123B. intC. sumD. $amount答案:B3. 在C语言中,用于定义一个函数的关键字是:A. functionB. defC. voidD. int答案:D4. 在C语言中,一个整数除以一个浮点数的结果是:A. 整数B. 浮点数C. 字符串D. 错误答案:B5. 下列哪个选项是C语言中的逻辑运算符?A. %B. &&C. &&D. ==答案:B二、填空题1. C语言中,用于定义一个整型变量的关键字是________。
答案:int2. 一个C语言程序的执行从________函数开始。
答案:main3. 在C语言中,________运算符用于计算两个整数的和。
答案:+4. 用于定义一个字符型变量的关键字是________。
答案:char5. C语言中,________运算符用于判断两个表达式是否相等。
答案:==三、编程题1. 编写一个C语言程序,计算并输出100以内所有偶数的和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("The sum of even numbers within 100 is: %d\n", sum);return 0;}```2. 编写一个C语言程序,实现输入一个字符串,然后输出其逆序字符串。
```c#include <stdio.h>#include <string.h>int main() {char str[100];scanf("%s", str);int len = strlen(str);for (int i = len - 1; i >= 0; i--) {printf("%c", str[i]);}printf("\n");return 0;}```四、简答题1. 请简述C语言中数组和指针的关系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
专升本C语言历年考试题及答案一、单项选择题1. ___D___是合法的用户自定义标识符。
A、b-bB、floatC、<fr>D、_isw2. 若变量已正确定义并赋值,表达式___B___不符合C语言语法。
A、a*b/c;B、3.14%2C、2, bD、a/b/c3. ___C__是不正确的字符常量。
A、'n'B、'1'C、"a"D、'101'4. 在C 程序中,用___B__表示逻辑值“真”。
A、1B、非0 的数C、非1 的数D、大于0 的数5. __C____把x、y定义成float类型变量,并赋同一初值3.14。
A、float x, y=3.14;B、float x, y=2*3.14;C、float x=3.14, y=x=3.14;D、float x=y=3.14;6. 若变量已正确定义,表达式___C___的值不是2。
A、2&3B、1<<1C、a==2D、1^37. 若变量已正确定义,语句“if(a>b) k=0; else k=1;”和__C____等价。
A、k=(a>b)?1:0;B、k=a>b;C、k=a<=b;D、a<=b ? 0 : 1;8. 设变量定义为“int a, b;”,执行下列语句时,输入_D____,则a和b的值都是10。
scanf("a=%d, b=%d",&a, &b);A、10 10B、10, 10C、a=10 b=10D、a=10, b=109. 下列程序的输出结果是__D___。
fun(int a, int b, int c){ c =a*b; }void main( ){ int c;fun(2,3,c);printf(”%dn”,c);}A、0B、1C、6D、无法确定10. 在C程序中,若对函数类型未加说明,则函数的隐含类型为__A___。
A、intB、doubleC、voidD、char11. 表达式strlen(”hello”) 的值是___B____。
A、4B、5C、6D、712. 设变量定义为“int a[4];”,则表达式__D____不符合C语言语法。
A、*aB、a[0]C、aD、a++13. 设变量定义为“int x, *p=&x;”,则&*p相当于__A___。
A、pB、*pC、xD、*&x14. 若变量已正确定义,_A___不能使指针p成为空指针。
A、p=EOFB、p=0C、p=’’D、p=NULL15. 对于以下的变量定义,表达式__D____不符合C语言语法。
struct node {int len;char *pk;} x = {2, "right"}, *p = &x;A、p->pkB、*p.pkC、*p->pkD、*x.pk16. 有如下程序int runc(int a,int b){ return(a+b);}main0{ int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%\d\n”,r);}该程序的输出的结果是(D)A) 12 B) 13 C) 14 D) 1517. 对于基类型相同的两个指针变量之间,不能进行的运算是(C)A) < B) = C) + D) -18. 有如下程序long fib(int n){ if(n>2) return(fib(n-1)+fib(n-2));else return(2);}main0{ printf(“%d\n”,fib(3));该程序的输出结果是(B)A} 2 B} 4 C} 6 D} 819. 有如下定义struct person{char name[9]; int age;};strict person class[10]={“Johu”, 17,“Paul”, 19“Mary”, 18,“Adam 16,};根据上述定义,能输出字母M的语句是(D)A) prinft(“%c\n”,class[3].mane);B) pfintf(“%c\n”,class[3].name[1]);C) prinft(“%c\n”,class[2].name[1]);D) printf(“%^c\n”,class[2].name[0]);20. 以下所列的C语言常量中,错误的是(B)A) 0xFF B) 1.2e0.5 C) 2L D) ‘\72’21. 有以下程序段int k=0while(k=1)k++;while 循环执行的次数是(A)A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次22. 以下程序的输出结果是(C)A) 0 B) 29 C) 31 D) 无定值fun(int x, int y, int z){ z=x*x+y*y; }main(){ int a=31;fun(5,2,a);printf(“%d”,a);}23. 下列程序段的输出结果是(A)A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2void fun(int *x, int *y){ printf(“%d %d”, *x, *y); *x=3; *y=4;}main(){ int x=1,y=2;fun(&y,&x);printf(“%d %d”,x, y);}24. 当调用函数时,实参是一个数组名,则向函数传送的是(B)A) 数组的长度B) 数组的首地址C) 数组每一个元素的地址D) 数组每个元素中的值25. 以下程序的输出结果是(A)A) 1 B) 2 C) 3 D) 4long fun( int n){ long s;if(n= =1 || n= =2) s=2;else s=n-fun(n-1);return s;}main(){ printf(“%ld\n”, fun(3)); }26. 以下程序的输出结果是(B)A) 16 B) 2 C) 9 D) 1#define SQR(X) X*Xmain(){ int a=16, k=2, m=1;a/=SQR(k+m)/SQR(k+m);printf(“d\n”,a);}27. 以下函数返回a所指数组中最小的值所在的下标值fun(int *a, int n){ int i,j=0,p;p=j;for(i=j;i<N;I++)if(a[i]<A[P])__________;return(p);}在下划线处应填入的是(D)A) i=p B) a[p]=a[i] C) p=j D) p=i二、填空题1. 表示“x≥y≥z”的C表达式是___ x>=y && y>=z ____。
2. 下列程序段的输出是__1____。
printf("%on", 010<<1^1);3. 下列程序段的输出是__6,90____。
int k;float s;for (k=0, s=0; k < 7; k ++)s += k/2;printf("%d, %fn", k, s);4. 下列程序段的输出是__5,25_____。
#define f(a, b, x) a*x+bprintf("%d, %dn", f(3,2,1), f(6, 5, f(3, 2, 1)));5. 下列程序段的输出是_*#*#____。
main(){ int k;for(k=1; k<5; k++) {if(k % 2) printf("*");else continue;printf("#");}}6. 下列程序段的输出是__5 8___。
# include <stdio.h>int f(int x){ static y=1;y++;x += y;return x;}void main(){ int k;k=f(3);printf("%d %dn", k, f(k));}7. 下列程序段的输出是___5__。
int *p, *q, k = 5 , j = 6 ;q = &k ; p = q ; q = &j ;printf("%d", *p);8. 函数void f(char s[ ], char t[ ]){ int k=0;while (s[k]=t[k]) k++;}等价于void f(char *s, char *t){ while (_*s++=*t++____);}9. 下列程序段的输出是_ ne,s ____。
char *a[2]={"one", "two"}, **p=a;printf("%s,", *(p++)+1);printf("%cn", **p-1);10. 下列程序编译后生成t.exe, 运行t input output zoo oil 的输出结果是__zoo___。
void main(int argc, char * argv[ ]){ int k;char *p=argv[1];for(k=2; k<argc; k++)if(strcmp(argv[k], p)>0) p=argv[k];printf("%sn", p);}11. 下列程序调用swap函数交换a和b的值,并输出交换后的a和b的值。
程序的输出结果是:After swap 5, 3。
void main( ){ int a=3, b=5;swap( &a, &b ) ;printf("After swap %d, %d", a, b);}swap( int *p, int *q ){ int t;t=*p; ;*p=*q ;*q=t ;}专升本C语言历年考试题及答案一、单项选择题1. C语言源程序文件经过C编译程序编译连接之后生成一个后缀为__C____的文件。
A、”.c”B、“.obj”C、“.exe”D、“.bas”2. 以下选项中不正确的整型常量是_C____。
A、 12LB、 -10C、 1,900D、 123U3. 表达式___C___的值是0。
A、3%5B、3/5.0C、3/5D、3<54. 表达式 !(x>0||y>0) 等价于__D___。