河海大学C语言期末试题A
大学C语言期末考试试题(含答案)

第一章C语言概述1.1 选择题*1.1一个C程序的执行是从 A 。
A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束参考答案:A参考分析:C语言总是从main函数开始,main函数结束。
但是C 语言中存在一个exit(0)函数,它可以使得程序在任何时候、任何位置结束程序的运行。
如果不考虑exit(0)等函数的特殊作用,C则总是在main函数结束。
*1.2以下叙述正确的是 C 。
A)在C程序中,main函数必须位于程序的最前面B)在C程序的每一行只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误参考答案:C参考分析:C程序对main函数的位置没有任何要求;其书写格式自由,一行可以写多条语句,一条语句(多关键字语句)可以写在多行;C语言忽略注释,把注释看作是一个空格,不会对注释中的内容进行语法检查。
因此,如果注释中存在错误,系统是不可能发现的。
另外,C语言的I/O操作均通过函数实现,系统本身未提供相应的语句。
1.3以下叙述不正确的是 D 。
A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面参考答案:D参考分析:C语言中,注释语句的位置是任意的,当然,它不能破坏标识符的完整性。
C语言只是将一个注释看作是一个空格,因此对注释内的任何错误都不作检查。
1.4 C语言规定:在一个源程序中,main函数的位置 C 。
A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后参考答案:C*1.5一个C语言程序是由 B 。
A)一个主程序和若干个子程序组成B)若干函数组成C)若干过程组成D)若干子程序组成参考答案:B参考分析:通常许多语言程序由主程序和子程序构成,但是C语言是函数式语言,整个程序由众多函数组成。
《C语言程序设计》2016-2017学年第一学期期末考试A卷

河海大学2016-2017学年第一学期期末考试《C语言程序设计》试题(A)卷姓名:班级:学号:成绩:一、单项选择题(每题1分,20分)1.若x、i、j、k都是整型变量,则计算下面表达式后x的值为.x=(i=4,j=16,k=32)A)4B)16C)32D)522.语句#include〈stdio.h>的功能是_________.A)定义stdio.h B)将stdio.h包含到语句所在的程序中C)声明stdio.h D)stdio.h包含了语句所在的程序3.下列四组选项中,均不是C语言关键字的选项是________.A)DEFIN IF TYPEB)getc char printfC)include case scanfD)while go pow4.下面正确的字符常量是______.A)“c”B)‘K’C)‘’D)‘23’5.下列四组选项中,均是合法转义字符的选项是___.A)‘\"'‘\\’‘\n'B)‘\'‘\017’‘\"'C)‘\018’‘\f’‘xab’D)‘\\0’‘\101'‘xlf’6.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6'-‘3’后,c2中的值为_____________.A)D B)68C)不确定的值D)C7.设有说明语句:char w;int x;float y;double z;则表达式w*x+z—y值的数据类型为______.A)float B)char C)int D)double8.判断char型变量ch是否为大写字母的正确表达式是.A)‘A’〈=ch<=‘Z’B)(ch〉=‘A')&(ch〈=‘Z’)C)(ch〉=‘A')&&(ch〈=‘Z’)D)(‘A’〈=ch)AND(‘Z'>=ch)9.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假".则以下不能满足要求的表达式是___________.A)A%2==1B)!(A%2==0)C)!(A%2)D)A%210.以下程序的运行结果是.void main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A)6,1B)2,1C)6,0D)2,011、设有程序段int k=10;while(k==0)k=k—1;这下面描述中正确的是_______.A)while循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次12.语句while(!E);中的表达式!E等价于________.A)E==0B)E!=1C)E!=0D)E==113.若i为整型变量,则以下循环执行次数是___________.for(i=2;i==0;)printf("%d”,i——);A)无限次B)0次C)1次D)2次14.以下为一维整型数组a的正确说明是________.A)int a(10);B)int n=10,a[n];C)int n;D)#define SIZE10;15.以下正确的函数定义形式是______.A)double fun(int x,int y){}B)double fun(int x;int y){}C)double fun(int x,int y);{}D)double fun(int x,y);{}16.变量的指针,其含义是指该变量的________.A)值B)地址C)名D)一个标志17.若有说明语句char a[]=”It is mine";char*p=”It is mine”;则以下不正确的叙述是_______.A)a+1表示的是字符t的地址B)p指向另外的字符串时,字符串的长度不受限制C)p变量中存放的地址值可以改变D)a中只能存放10个字符18.若执行fopen函数时发生错误,则函数的返回值是.A)地址值B)0C)1D)EOF19.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是_____.A)”ab+”B)"wb+”C)”rb+”D)”ab”20.下方程序答案正确的是_________.#include〈string.h〉struct STU{int num;float TotalScore;};void f(struct STU p){struct STU s[2]={{20044,550},{20045,537}};p.num=s[1].num;p.TotalScore=s[1].TotalScore;}main(){struct STU s[2]={{20041,703},{20042,580}};f(s[0]);printf("%d%3.0f\n”,s[0].num,s[0].TotalScore);}程序运行后的输出结果是()A)20045537B)20044550C)20042580D)20041703二、读程序填空(每空2分,共20分)1.main(){int i,j,x=0;for(i=0;i<3;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++;}x++;}printf(“x=%d\n”,x);}则程序的执行结果为__⑴_.2.下面程序为以每行4个数据的形式输出数组a,请填空.#define N20main(){int a[N],i;for(i=0;i〈N;i++)scanf(”%d",⑵);for(i=1;i<=N;i++){if(⑶)printf("\n”);printf("%3d",a[i-1]);}printf("\n”);}3.下面程序为把数组a中数据复制到数组b中并输出.#define M5void main(){int i,a[5]={23,15,50,3,21};int b[M];int*p=a,*q=b;for(i=0;i〈5;i++)⑷;printf(”Output these numbers:\n”);⑸;for(i=0;i<M;i++)printf(”%d",*q++);printf("\n");}4.以下fun函数的功能是:在第一个循环中给a数组元素依次赋1,2,3,4,5,6,7,8,9,10;在第二个循环中a数组元素中的值对称折叠,变成1,2,3,4,5,5,4,3,2,1;fun(int⑹){int i;for(i=1;i<=10;i++)⑺=i;for(i=0;i<5;i++)⑻=a[i];}5.以下程序的功能是输出如下形式的方阵:13141516910111256781234请填空.main(){int i,j,x;for(j=4;j⑼;j--){for(i=1;i<=4;i++){x=(j—1)*4+⑽;printf("%4d”,x);}printf("\n”);}}三、编程题(60分,在下面的空白处编写程序)1、编程计算下面函数的值,其中x由键盘输入.(12分)—1x≤-1y=xe—1<x〈1(x+1)2x≥12.一球从200米高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第15次落地时,共经过多少米?第15次反弹多高?(6分)3.编写一函数sum,求二维数组(M*M)上三角(含对角线)之和.(12分)4.从键盘上输入数组str(长度不大于100),再从键盘上输入一个字符,从数组str中删除该字符,并输出删除字符后的字符串.(12分)5.找出数组a[N]中的最大数及其下标.(10分)6.编写子函数search,从字符串str中查找某字符ch(str、ch由主函数提供)第一次出现的位置和出现的次数;函数返回字符的位置,若串str中没有字符ch,则返回-1.比如:当str为"abmcmnkt”,ch为'm’时,位置为3,次数为2.要求:不允许使用全局变量.主程序部分源代码如下.(8分)#include<stdio.h>int search(char str[],char ch,int*p){}main(){int k,m;char string[20],ch;printf(”input a string and a character\n");gets(string);ch=getchar();k=search(string,ch,&m);printf(”the first position is%d and the number of this character is%d\n",k,m);}。
2022年河海大学公共课《C语言》科目期末试卷B(有答案)

2022年河海大学公共课《C语言》科目期末试卷B(有答案)一、填空题1、已有定义int a;float b,x;char cl,c2;为使a=3、b=6.5、x=12.6、cl='a'、c2='A',正确的scanf函数调用语句是_______,数据输入的形式应为_______。
2、C语言源程序的基本单位是________3、结构化程序由________、________ 、________ 3种基本结构组成。
4、表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为_______。
5、C语言所提供的基本数据类型包括:单精度型、双精度型、_______、_______和_______。
6、测试char型变量a第6位是否为1的表达式是_______(设最右位是第1位)。
7、下面程序段中循环体的执行次数是_______。
a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);8、下面程序段的运行结果是_______。
int i=5;char c[6]="abcd";do{c[i]=c[i-1];}while(--i>0);puts(c);9、下面程序wdm的运行结果是_______。
int i,x[10]={2,3,0,3,0,2,3,2,1,3},y[4]={0};for(i=0;i<10;i++)y[x[i]]++;printf("%d\n",y[3]);10、下面程序可求出图中方括号内的元素之积,请填空。
# include<stdio.h>int main(){ int x[3][3]={7,2,1,3,4,8,9,2,6};int s,*p;p=_______;s=*p*_______;printf("product=%d",s);return(0);}二、选择题11、在C语言中,要求运算数必须是整型的运算符是( )。
大学生期末c语言试题及答案

大学生期末c语言试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列关于数组的描述中,正确的是:A. 数组必须在定义时初始化B. 数组的元素类型必须一致C. 数组的下标可以是实数D. 数组的下标可以是负数答案:B3. C语言中,用于文件操作的库函数位于哪个头文件中?A. stdio.hB. math.hC. string.hD. stdlib.h答案:A4. 下列哪个运算符不能用于赋值?A. =B. +=C. *=D. %答案:D5. C语言中,用于定义一个函数的关键字是:A. functionB. defineC. defD. void答案:B6. 下列关于指针的描述中,错误的是:A. 指针可以存储地址B. 指针可以存储值C. 指针可以作为函数的参数D. 指针可以作为函数的返回值答案:B7. C语言中,用于定义一个宏的预处理指令是:A. #defineB. #includeC. #pragmaD. #if答案:A8. 下列关于循环的描述中,正确的是:A. for循环可以没有初始化表达式B. while循环可以嵌套C. do-while循环至少执行一次D. 所有循环都可以使用break语句退出答案:C9. C语言中,用于定义一个枚举类型的关键字是:A. enumB. structC. unionD. typedef答案:A10. 下列关于函数的描述中,错误的是:A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以递归调用D. 函数可以嵌套定义答案:D二、填空题(每题2分,共20分)1. 在C语言中,字符'A'的ASCII码值是______。
答案:652. 若int a = 10; int b = 20; 则表达式a++ + b的结果是______。
大学期末c语言考试题库及答案

大学期末c语言考试题库及答案一、单项选择题(每题2分,共20分)1. C语言中,以下哪个是合法的标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. 下列哪个选项是C语言中的关键字?A. includeB. intC. mainD. sum答案:B3. 在C语言中,用于定义一个整型变量的关键字是?A. intB. floatC. doubleD. char答案:A4. C语言中,以下哪个函数用于计算两个数的和?A. max()B. min()C. sum()D. average()答案:C5. 下列哪个选项是C语言中正确的字符串定义方式?A. char str[10] = "Hello";B. char str[10] = 'Hello';C. char str = "Hello";D. char str[10] = "Hello", "World";答案:A6. C语言中,以下哪个是正确的二维数组定义?A. int array[3, 4];B. int array[3][4];C. int array[][] = {1, 2, 3, 4};D. int array[3][4] = {1, 2, 3};答案:B7. C语言中,以下哪个是正确的函数定义?A. void myFunction();B. int myFunction() {}C. void myFunction() {}D. int myFunction() {}答案:C8. 在C语言中,以下哪个选项用于输入一个整数?A. scanf("%d", &number);B. printf("%d", &number);C. gets(&number);D. puts(&number);答案:A9. C语言中,以下哪个选项用于输出一个浮点数?A. printf("%f", number);B. scanf("%f", number);C. gets(number);D. puts(number);答案:A10. 在C语言中,以下哪个选项是正确的循环结构?A. for (int i = 0; i < 10; i--)B. for (int i = 0; i <= 10; i++)C. for (int i = 0; i < 10; i++)D. for (int i = 10; i--; i < 0)答案:C二、填空题(每题2分,共20分)1. 在C语言中,表示逻辑“与”的运算符是 ________ 。
c语言期末试题及答案及详解

c语言期末试题及答案及详解一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. defineB. caseC. functionD. include答案:B2. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 若有以下代码:```cint a = 5, b = 10;a = a + b;b = a - b;a = a - b;```执行后变量a的值是:A. 5B. 10C. 15D. 0答案:B4. 下列关于指针的描述,错误的是:A. 指针可以指向一个变量B. 指针可以指向一个数组C. 指针可以指向一个函数D. 指针不可以指向一个指针答案:D5. 在C语言中,以下哪个函数用于将字符串从源字符串复制到目标字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A6. 下列哪个选项是C语言中合法的数组声明?A. int arr[5] = {0, 1, 2, 3, 4};B. int arr[] = {0, 1, 2, 3, 4};C. int arr[5] = {0, 1, 2};D. int arr[] = {0, 1, 2, 3};答案:B7. C语言中,以下哪个运算符用于执行按位与操作?A. &&B. ||C. &D. &&答案:C8. 下列关于函数的描述,正确的是:A. C语言中的函数可以没有返回值B. C语言中的函数可以返回多个值C. C语言中的函数可以重载D. C语言中的函数可以嵌套定义答案:A9. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopenB. fcloseC. fgetcD. All of the above答案:D10. 下列关于C语言中循环的描述,错误的是:A. for循环可以嵌套使用B. while循环可以和do-while循环嵌套使用C. do-while循环至少执行一次D. break语句可以跳出循环体答案:B二、填空题(每题2分,共20分)1. 在C语言中,用于定义一个整型变量的关键字是________。
c语言大一期末考试题库及详解答案

c语言大一期末考试题库及详解答案C语言大一期末考试题库及详解答案一、选择题1. 下列哪个选项是C语言的关键字?A. IntegerB. StringC. FloatD. None of the above答案:D2. 在C语言中,定义一个整型变量的正确语法是什么?A. int var;B. var int;C. integer var;D. var integer;答案:A3. 以下哪个表达式的结果不是整数?A. 3 / 2B. 7 % 3C. 10 / 2D. 8 / 2答案:A二、填空题1. 在C语言中,用于定义数组的关键字是________。
答案:Array2. 一个C语言程序的执行从________函数开始。
答案:main3. 以下语句的输出结果是________。
```cint a = 5, b = 10;printf("%d", a + b);```答案:15三、简答题1. 简述C语言中指针的概念及其用途。
答案:指针是C语言中用来存储变量地址的变量。
它允许程序员直接访问内存地址,从而可以动态地操作内存。
指针的用途包括动态内存分配、实现数据结构如链表、数组的遍历等。
2. 解释C语言中的函数重载。
答案:C语言不支持函数重载。
在C语言中,如果两个或多个函数具有相同的名称但参数列表不同,编译器会报错。
这是与支持函数重载的语言(如C++)的主要区别。
四、编程题1. 编写一个C语言程序,实现计算并输出1到100的整数之和。
```c#include <stdio.h>int main() {int sum = 0, i;for(i = 1; i <= 100; i++) {sum += i;}printf("The sum of numbers from 1 to 100 is: %d\n", sum);return 0;}```2. 编写一个C语言函数,实现字符串反转的功能。
大学c语言期末考试题库试题及答案

大学c语言期末考试题库试题及答案在即将到来的大学C语言期末考试中,同学们可能会遇到各种类型的题目。
以下是一些典型的试题及其答案,供同学们复习参考。
1. 以下哪个选项是C语言中的关键字?A. intB. IntegerC. INTD. integer答案:A. int2. 若有定义:int a = 10; 则表达式 a++ 的值是多少?A. 9B. 10C. 11D. 无法确定答案:B. 103. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlen()B. length()C. str_length()D. string_length()答案:A. strlen()4. 若有以下代码片段:```cint x = 5;printf("%d", x++);```执行后输出的结果是?A. 4B. 5C. 6D. 无法确定答案:B. 55. 在C语言中,以下哪个选项表示“逻辑与”操作?A. &&B. ||C. !D. &答案:A. &&6. 若有以下代码:```cint a = 3, b = 4, c;c = a + b;```则变量 c 的值是多少?A. 7B. 3C. 4D. 无法确定答案:A. 77. 在C语言中,以下哪个选项是正确的二维数组声明?A. int array[2,3];B. int array[2][3];C. int array[2][3][4];D. int array[][];答案:B. int array[2][3];8. 若有以下函数定义:```cint add(int x, int y) {return x + y;}```则调用 add(5, 3) 时,返回的值是多少?A. 2B. 5C. 8D. 无法确定答案:C. 89. 在C语言中,以下哪个选项表示“不等于”的比较运算符?A. ==B. !=C. =D. <=答案:B. !=10. 若有以下代码:```cchar str[] = "Hello";str[0] = 'h';```执行后,str 数组的内容是什么?A. "hello"B. "Hello"C. "helloworld"D. "hEllo"答案:A. "hello"这些题目覆盖了C语言的基础知识点,包括关键字、变量、函数、数组以及基本的控制结构。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
专业班级:学号:姓名:一、选择题(用铅笔把选中的方格涂黑40×1=40分)1A B C D2A B C D3A B C D4A B C D 5A B C D6A B C D7A B C D8A B C D 9A B C D10A B C D11A B C D12A B C D 13A B C D14A B C D15A B C D16A B C D 17A B C D18A B C D19A B C D20A B C D 21A B C D22A B C D23A B C D24A B C D 25A B C D26A B C D27A B C D28A B C D 29A B C D30A B C D31A B C D32A B C D 33A B C D34A B C D35A B C D36A B C D 37A B C D38A B C D39A B C D40A B C D二、填空题(25×2=50分)(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16)(17)(18)(19)(20)(21)(22)(23)(24)(25)三、编程题(10分)求10个数的最大公约数和最小公倍数(定义两个函数,求两个数的最大公约数和两个数的最小公倍数)一、选择题 ( 40×1分=40分)1.以下叙述中正确的是 (1)D 。
A .在编译时可以发现注释中的拼写错误B .C 语言程序的每一行只能写一条语句C .main( ){}必须位于程序的开始D .C 语言程序可以由一个或多个函数组成2.以下选项中不能用作变量名的是 (2)B 。
A ._floatB .switchC .sumD ._123 3.已知sizeof(int)的值为2,为将10!的值存储到变量f 中(10!=3628800),变量f 的类型应声明为(3)A 。
A .long intB .intC .short intD .unsignedint4. 以下表示中,不能用作C 语言常量的是 (4)B 。
A. 0ULB. (long)123C. 1e0D.‘\x2a’5.数学式在C 程序中正确的表示形式为 (5)B 。
ba2A .sqrt(a)/2*b B .sqrt(a)/2/b C .sqrt(a)/2b D .sqrt a/(2*b) 6.已知有程序段“char str[][10]={"Aoyun","Beijing"},*p=&str[0][0];printf("%s\n",p+10);”,则执行printf 语句后输出为 (6) A 。
A .Beijing B .Aoyun C .ing D .ng 7.以下声明中错误的是 (7)C 。
A .int a[2];B .int a[]={0,1};C .int a[3]=0;D .int a[3][4]={0};8.以下表示数学式“a<b<c”的逻辑表达式中,错误的是 (8) A 。
A. a<b<cB. a<b&&b<cC. !(a>=b)&&!(b>=c)D. !(a>=b||b>=c)9.已有声明“int a=3,b=3,c=2;”,以下选项中值为0的表达式是 (9)A 。
A. !a&&!b&&c B. !a||!b||c C. a==b&&b>=c D. a>=b&&b>c 10.若有声明“char ss[8]="Red";”,则sizeof(ss)的值是 (10)A 。
A .8B .4C .3D .111. 以下程序运行后的输出结果是 (11)B 。
A. 2 2B. 7 2C. 7 5D. 6 2main(){ char a[7]="a0\0a0\0"; int i,j; i=sizeof(a); j=strlen(a); printf("%d %d",i,j); }12. 下面关于循环语句for 、while 、do_while 的叙述中,正确的是 (12)D 。
A.三种循环语句的循环体都必须放入一对花括号中B.三种循环语句中都可以缺省循环终止条件表达式C.三种循环语句的循环体都至少被无条件地执行一次D.三种循环语句都可能出现无穷循环13. 若有声明“int a[]={1,2,3,4},*p,i;”,则以下程序段中不能输出13的是(13)B。
A.for(i=0;i<4;i+=2) printf("%d",a[i]);B.for(p=0;p<4;p+=2) printf("%d",a[p]);C.for(p=a;p<a+4;p+=2) printf("%d",*p);D.for(p=a,i=0;i<4;i+=2) printf("%d",p[i]);14.在下列C语言源程序的错误中,通常不能在编译时发现的是(14)C。
A. 括号不匹配B. 非法标识符C. 数组元素下标值越界D. 程序结构不完整15.若有声明“long a,b;”且变量a和b都需要通过键盘输入获得初值,则下列语句中正确的是(15)D。
A. scanf("%ld%ld,&a,&b");B. scanf("%d%d",a,b);C. scanf("%d%d",&a,&b);D. scanf("%ld%ld",&a,&b);16.若有程序段“char c=256; int a=c;”,则执行该程序段后a的值是(16)C 。
A. 256B. 65536C. 0D. -117.若在一个C语言源程序中“e1”和“e3”是表达式,“s;”是语句,则下列选项中与语句“for(e1; ;e3)s;”功能等同的语句是(17)B。
A. e1;while(10)s;e3;B. e1;while(10){s;e3;}C. e1;while(10){e3;s;}D. while(10){e1;s;e3;}18.若有声明“int a[3][4], *p=a[0] ,(*q)[4]=a;”,则下列叙述中错误的是 (18) B。
A. a[2][3]与q[2][3]等价B. a[2][3]与p[2][3]等价C. a[2][3]与*(p+11)等价D. a[2][3]与p=p+11,*p等价19. 若有声明“long fun(int *x,int n,long *s);int a[4]={1,2,3,4}; long b,c;”,则以下函数调用形式中正确的是(19)D。
A. c=fun(a,4,b);B. c=fun(a[],4,&b);C. c=fun(a[4],4,b);D. c=fun(a,4,&b);20.已知在函数f中声明了局部变量x,如果希望f函数第一次被调用返回后变量x中存储的数据保持到下次f函数被调用时仍可以使用,则在声明x时必须指定其存储类型为(20)C。
A. autoB. registerC. staticD. extern21. 若有如下的类型定义和变量声明,则在给出的选项中值不为7的表达式是(21)A 。
A.ptr->aB.(++ptr)->aC.x[1].aD.x[0].b->astruct ss{ int a; struct ss *b; }x[3]={{5,&x[1]},{7,&x[2]},{9,0}}, *ptr=&x[0];22. 若需要对一个数据文件abc.txt中的数据做加密处理并且限定只能做一次打开文件操作,则在“fp=fopen("abc.txt", 模式字符串 ); ”中,模式字符串应当是(22) B 。
A. "w+"B. "r+"C. "a+"D. "r"23.若有如下声明和语句:int t[3][3],*pt[3],k;for(k=0;k<3;k++) pt[k]=&t[k][0];则表达式*(*(pt+1)+2)所引用的是 (23) C。
A. t[2][0] B. &t[2][0] C. t[1][2] D. &t[1][2] 24. 若有结构类型定义“typedef struct test{ int x,y[2]; }TEST;”,则以下声明中正确的是(24)A。
A.struct test x; B.struct x;C.test x ; D.struct TEST x;25. 设有声明int value=‘5’;则执行下列选项的赋值语句后,value的值不等于5的是(25)C。
A. value=value-‘0’;B. value=value-0x30;C. value=value-49;D. value=value-‘\060’;26.若有枚举类型定义“enum list1{x1,x2,x3,x4=6,x5,x6};”,则枚举常量x2和x6代表的值分别是(26)B。
A. 1,6B. 1,8C. 2,6D. 2,8 27.设有声明float a=1.23456; int i;,欲将a中的数值保留小数点后两位,第三位进行四舍五入运算,能实现该功能的表达式是(27)A 。
A. i=a*100+0.5,a=i/100.0B. a=(a*100+0.5)/100.0C. a=((int)a*100+0.5)/100.0D. a=(a/100+0.5)/100.028.若有声明“int x[10]={0,1,2,3,4,5,6,7,8,9},*p;”,则值不为4的表达式是(28)C 。
A.p=x,*(p+4) B.p=x+4,*p++C.p=x+3,*(p++) D.p=x+3,*++p29.若有声明“int i,k=1; unsigned j;”,则下列语句执行时会出现无限循环的语句是(29) A。
A.for(j=15;j>0;j-=2) k++; B.for(j=0;j<15;j+=2) k++;C.for(i=0;i<15;i+=2) k++; D.for(i=15;i>0;i-=2) k++;30.已知A盘根目录下有文本文件“data.txt”且程序中已有声明“FILE *fp;”,若程序需要先从“data.txt”文件中读出数据,修改后再写入“data.txt”文件中,则调用fopen函数的正确形式是 (30) C。