当前位置:文档之家› 专升本C语言训练 填空题

专升本C语言训练 填空题

二、填空题

1. 设float x=

2.5,y=4.7; int a=7;,则表达式x+a%3*(int)(x+y)%2/4 的值为。

2. 设 int x=17,y=5; 执行语句 x+=--x%--y 后,x的值为。

3. 设 int x=17,y=5; 执行语句 x%=x++/--y 后,x的值为。

4. 设 int a=7,b=6,c=5;,则表达式 (a+b)>(c*c)&&b==c||c>b 的值为。

5.设 int a=3,b=5,c=7;,则表达式a>c||c>b!=0&&c==b+a 的值为。

6.已知三角形边长a、b、c和s=(a+b+c)/2,计算其面积的算术表达式为

7. 已知方程ax2+bx+c=0系数a、b、c且存在两个实根,计算其中一个实根的算术表达式为。

8. p为本金,r为1年期存款年利率,计算存款p元5年到期时本金、利息总和(计复利)的算术表达式为。

9.将数学式(x+1)e2x写作C语言的算术表达式为。

10.ch是字符变量,判断ch为大写英文字母的逻辑表达式为。

11. 判断int类型变量n是否为两位整数的逻辑表达式为。

12. 判断变量a、b的值均不为0的逻辑表达式为。

13. 判断变量a、b是否绝对值相等而符号相反的逻辑表达式为。

14. 判断变量a、b中必有且只有一个为0的逻辑表达式为。

15. m是值为两位数的整型变量,判断其个位数是奇数而十位数是偶数的逻辑表达式为

16. 求解赋值表达式 a=5+(c=6)后表达式值、a、c的值依次为。

17. 求解赋值表达式 a=(b=10)%(c=6),表达式值、a、b、c的值依次为。

18. 求解逗号表达式 x=a=3,6*a后,表达式值、x、a的值依次为。

19. 求解逗号表达式 (a=15,a*4),a+5,表达式值、a的值依次为。

20. 求变量a、b中最大值的条件表达式为。

21. 若 a=13、b=25、c=-17,条件表达式 ((y=(a

22. 若 s='d',执行语句 s=(s>='a'&&s<='z')?s-32:s; 字符变量s的值为。

23. 整型变量x的值为25,语句"printf("%o",x);"的输出结果为。

24. 整型变量m的值为27,语句 printf("m=%x",m);的输出结果为。

25. 语句printf("s%s","mall"); 的输出结果为。

26. 若int k=10, 循环语句while (k=0) k=k-1; 执行_________次。

27.若int k=2, 循环语句while (k!=0) { printf("%d",k); k--; } 执行_____次。

28. 若int i=10,s=0;,执行语句while(s+=i--,--i);后s、i值分别为。

29. 程序段 int s,i; for(i=1;i<=100;s+=i,i++); 能否计算1~100的和? 原因是

30. 若int类型变量字长为2,程序段 int jc=1; for(int i=2;i<10;i++)jc*=i; 能否

计算10的阶乘? 原因是。

31. 定义a为共有10个元素的静态存储int类型数组的语句为

static int a[10];。

32. 定义a为长度为10的字符串、同时为字符串赋初值"continue"的语句为

char a[10]="continue" 。

33. 定义a为共有5个元素的一维整型数组、同时定义p为指向a数组首地址的指针变

量的语句为int a[5],*p=a;。

34. 定义a为4行5列的二维整型数组、同时定义p为指向a数组首地址的指针变量的

语句为。

35. 如定义语句为“char a[]="windows ",b[]="95";”,

语句"printf("%s",strcat(a,b));"的输出结果为windows 95。

36. 定义语句为 char a[15],b[]="windows 95";,则语句 printf("%s",strcpy(a,b));

的输出结果为windows 95。

37. 定义语句为 char a[]="Box",b[]="Boss";,语句 printf("%d",strcmp(a,b));输

出5。

38. 定义语句为“char a[10]="student";”,语句"printf("%d",strlen(a));"的输出

结果为7。

39. 定义语句为 char a[]="WINDOWS";,语句 printf("%s",strlwr(a));输出windows。

40. 定义语句为 char a[]="hangzhou",*p=a;,语句 for(int i=0; *p!='\0'; p++,i++);

执行后i的值为。

41. 对宏定义语句“#define f(x,y) printf(x,y)”的引用 f("%d\n",m);

置换展开后为。

42. 宏定义语句 #define f(x,y) fopen(x,y) 的引用 f("a.txt","rw");

置换展开后为。

43. 宏定义语句 #define f(c) c>='A'&&c<='Z'的引用 f(x[i])

置换展开后为。

44.表达式 3&5、3|5、3||5 的值分别为、、。

45.C语言的标识符由、和组成。

46.设 int x=0707,表达式 ~x&&x、!x&&x、x>>3&~0的值分别为、、。

47. 函数的参数为int类型时,形参与实参结合的传递为。

48. 函数的参数为float类型时,形参与实参结合的传递为。

49. 函数的参数为char* 类型时,形参与实参结合的传递为。

50. 函数的实参为常量时,形参与实参结合的传递为。

51.对下列递归函数,函数调用f(3)的返回值是。

int f(int n) { return((n==0)?1:f(n-1)+2);}

52.函数f定义如下,调用f("1475")的返回值为。

int f(char *s) { int k=0; while(*s) k+=*s++-'0'; return k;}

53. 函数change定义如下,若a=10、b=5,执行 change(a,b)后a、b的值分别为。 void change(int a,int b) { int t=0; t=a; a=b; b=t;}

54. 开辟一个存储n个int数据的内存区、并将内存区首地址送入p(指向int类型的指

针变量)的语句为。

55.释放由p所指向的内存区的语句为。

56.fp为文件位置指针,将fp移到离当前位置25个字节处的语句为57.int i=234,j=567; 函数printf("%d%d\n",i,j) 的输出结果是

58.int i=234; float x=-513.624;函数printf("i=%5d x=%7.4f\n",i,x) 的输出结果是

59. float alfa=60,pi=3.1415926535626;函数printf("sin(%3.0f*%f/180)\n",alfa,pi) 的输出结果是

60. char ch='$',float x=153.45;函数printf("%c%-8.2f\\n",ch,x) 的输出结果是

61. int d=27; 函数printf("%-5d,%-5o,%-5x\n",d,d,d) 的输出结果是

62. float x1=13.24,x2=-78.32; 函数printf("x(%d)=%.2f x(%d)=%.2f\n",1,x1,2,x2) 的输出结果是

63.设float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4 值为。

75. 求1至100的和,写作 for(s=0,i=1; ;++i) s+=i;

76. 执行程序段“y=1; x=5; while(x--); y++;”后,y的值为

77.顺序输出26个大写英文字母的循环结构,写作for( ) putchar(ch);

78. 输入若干个以问号结束的字符,同时输出这串字符(不包括问号),写作while( !='?') putchar(ch);

79.循环程序段“k=5; for(;k<0;k--);”执行后,k的值为

80.定义函数时,若缺省函数类型标识符,函数返回值类型为。

81.函数之间参数传递的方式有和。

82.当参数采用地址调用方式传递时,实参必须是与形参同类型的。

83.参数采用传值调用方式时,若实参与形参不同类型,C的处理是

84. 调用时形参值的改变,能引起实参变量有改变的参数传递方式是。

85.定义一个带参数的宏,若变量中的字符为大写字母则转换成小写字母

86.定义一个带参数的宏,将两个参数的值交换

#define swap(a,b) { double t; }

87.定义带参数的宏为 #define max(a,b) ((a)>(b)?(a):(b))

对表达式 max(a,max(b,max(c,d))) 作宏替的功能为(用文字描述):

88.未初始化的int类型数组,其各元素的值是。

89.初始化时没有被赋值的字符类型数组元素,它们的值为。

90.数组声明为“int a[6];”,数组元素a[1]是否又可以写作“*(a++)”?

原因是。

91.引用二维数组a第i行、j 列的元素(i、j为0表示第1行、第1列),可以写

作或。

92.数组声明为“int a[6][6];”,表达式“*a+i”是指、“*(a+i)”是指、“**a”又是指。

93.数组声明为“float x[7][5];”,若x[6][4]是内存中从x[0][0]数起的第35个元素,则x[4][4]是第个元素。

94.声明“char str1[20]="Borland c++ 5.0"”后,使字符串str1为"Borland"的赋值表达式,应为。

95.将包括空格在内的6个字符串输入到字符数组a[6][20]中,输入语句可以写作。

96.声明float类型变量x和指向x的指针变量px的语句是。

97. 声明语句为“char a[5][9],*pa[5];”。为指针数组pa各元素顺序赋值a数组各行首地址值的循环结构可以写作。

98. 声明fg为指向返回值为float类型、形参依次为 float**、int、int类型变量的函数的指针,声明语句为。

99. 编制函数find_ch,在一个字符串中查找字符ch第一次出现的位置,返回值为所找到字符的地址,函数find_ch的原型应为。

100.动态分配n个int类型数据的存储空间,并将该存储空间的首地址返回给指向int类型数据的指针变量p,写作语句。

101.fopen函数的返回值是。

102. 文件打开方式为"r+",文件打开后,文件读写位置在。

103.文件打开方式为"a",文件打开后,文件读写位置在。

104. 表达式“fgetc(fpn)”的值为或。

105. 表达式“fgets(a,10,fpn)”的值为或。

106. 函数fscanf的返回值为或。

107. 函数fread的返回值为所读入数据的个数或。

108.表达式“fscanf(fpn,"%f",&x)”的值为-1时,函数feof()的值为。

109、若有以下定义和语句:

int a[4]={0,1,2,3},*p;

p=&a[1];

则(1)、++(*p)的值是[1] 。

(2)、*(++p)的值是[2] 。

(3)、*(p++)的值是[3] 。

110、若有以下定义:int a[2][3]={2,4,6,8,10,12};则*(&a[0][0]+2*2+1)的值是[1] ,

*(a[1]+2)的值是[2] ,*(*(a+1)+2)的值是[3] 。

111、若有以下定义:int a[]={2,4,6,8,10,12},*p=a;则*(p+1)值是[1] ,*(a+5)的值是[2] 。

112若有以下定义:int a[2][3],I,J;,则程序中引用元素a[I][J]的四种方法为[1]、[2]、[3]和[4] 。

相关主题
文本预览
相关文档 最新文档