【PTA】客观题NO.9 |
您所在的位置:网站首页 › fun指针 › 【PTA】客观题NO.9 |
1-1 如果strcmp(s1,s2)返回的结果为0,表示字符串s1和s2不相同。 语法/原型: int strcmp(const char* stri1,const char* str2); 参数 str1 和 str2 是参与比较的两个字符串。strcmp() 会根据 ASCII 编码依次比较 str1 和 str2 的每一个字符,直到出现不同的字符,或者到达字符串末尾(遇见\0)。返回值: 如果返回值 < 0,则表示 str1 小于 str2。如果返回值 > 0,则表示 str2 小于 str1。如果返回值 = 0,则表示 str1 等于 str2。T F 1-2 c语言的数组下标从0开始。 (1分) T F 1-3 数组初始化时,初始值个数小于数组元素的个数,C语言自动将剩余的元素初始化为初始化列表中的最后一个初始值。 字符数组 \0 整型数组 0 (1分) T F 1-4 数组定义后,数组名表示该数组所分配连续内存空间中第一个单元的地址,即首地址,是一个常量,不能被修改。 (1分) T F 1-5 == can be used to compare two strings. (1分) T F 1-6 指向数组元素的指针只可指向数组的首元素。 (1分) T F 1-7 数组定义后,数组名表示该数组所分配连续内存空间中第一个单元的地址,即首地址。 (1分) T F 1-8 二维数组的元素在内存中按行/列方式存放,即先存放第0行的元素,再存放第1行的元素……其中每一行的元素再按照列的顺序存放。 (1分) T F 1-9 若有定义int a[]={2,4,6,8,10},a[1]和a++表示的含义相同。 a[1] == *(a+1) a++不允许!a是常量! T F (0 分) 1-10 数组的长度可以是变量。 (1分) T F 1-11 执行语句int *p = 1000;后,指针变量p指向地址为1000的变量。 (1分) p是指针, p=1000 是把p指向了地址为1000的值(没实际意义 T F 1-12 不同类型的指针变量是可以直接相互赋值的。 (1分) T F 1-13 要通过函数调用来改变主调函数中某个变量的值,可以把指针作为函数的参数。 (1分) T F 1-14 对于定义int a[10],*p=a; 语句p=a+1;和a=a+1;都是合法的。 a是常量! T F 1-15 在C语言中,数组名是不可改变的,不能对它进行赋值运算。 (1分) T F 2-1 为了判断两个字符串s1和s2是否相等,应当使用下列哪个语句( )。 (2分) A. if(s1==s2); B. if(strcmp(s1,s2)==0); C. if(s1=s2); D. if(strcpy(s1,s2)); 2-2 设有二维数组定义及初始化 int a[][3] = {{1,4}, {3,2}, {4,5,6}, {0}}; 则元素 a[2][1] 的值是______。 (2分) A. 2 B. 5 C. 6 D. 4 2-3 一维数组初始化 以下关于数组定义时进行初始化的描述中,( )选项是错误的。 (2分) A. int d[5]; 数组d中的值是无法预知。 B. int d[5]={0}; 数组d中的值全为0; C. int d[5]={1}; 数组d中的值全为1; D. int d[5]={1}; 数组d中的值第1个为1,其余均为0;√ 2-4 若想将一个字符数组a的内容存入另一个字符数组b中,下列正确的是( ). (2分) A. strcpy(a,b); B. trcat(b,a); C. b=a; D. strcpy(b,a); 2-5 下述对C语言字符数组的描述错误的是( ) (2分) A. 字符数组可以存放字符串 B. 字符数组中的字符串可以整体输入、输出 C. 可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 D. 不可以用关系运算符对字符数组中的字符串进行比较 2-6 在C/C++语言中引用数组元素时,数组下标的要求,下列选项中最合适的是( ) 。 (2分) A. 整型常量 B. 整型变量 C. 整型表达式 D. 任何类型的表达式 2-7 有数组初始化语句“int a[] ={1,2,3,4,5,6,7,8,9,10};”,则数值最小和最大的元素下标分别是( )。 (2分) A. 1,10 B. 0,9 C. 1,9 D. 0,10 2-8 有数组定义语句“int i=3,a[20];”,则元素引用错误的是( ) 。 (2分) A. a[7*i-1] B. a[2*i*i+1] C. a[3*i+1] D. a[0] 2-9 有初始化语句“int a[3][4]={1,3,5,7,9};”,则a[1][2]的值为( )。 (2分) A. 0 B. 3 C. 5 D. 9 2-10 根据声明int a[10], *p=a; ,下列表达式错误的是( )。 (2分) A. a[9] B. p[5] C. a++ D. *p++ 2-11 下面程序的输出结果是( )。 # include void fun (int *x, int *y) { printf("%d%d", *x, *y); *x = 3; *y = 4; } int main(void) { int x=1, y=2; fun(&x, &y); printf("%d%d", x, y); return 0; } (2分) A. 2134 B. 1212 C. 1234 D. 2112 2-12 已有定义int k=2; int *ptr1, *ptr2; 且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是( )。 (2分) A. k = *ptr1 + *ptr2; B. ptr2 = k; C. ptr1 = ptr2; D. k = *ptr1 *(*ptr2); 2-13 执行以下程序后,y的值是: int main ( ) { int a[]={2,4,6,8,10}; int y=1,x,*p; p=&a[1]; for(x=0;x int a[5]={1,2,3,4,5},i; fun(a,5); for(i=0;i |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |