随机组卷按大纲配比:判断 8 · 单选 20 · 填空 10 · 综合 2(共 40 题 · 80 分)
- 单选以下数组定义中不正确的是做这题 →
- 单选以下程序的输出结果是 main() { int a[4][4]={{1,3,5},{2,4,6},{3,5,7}}; printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0] );}做这题 →
- 单选设有定义:int ×[2][3];,则以下关于二维数组×的叙述错误的是做这题 →
- 单选设有一个M*N的矩阵已经存放在一个M行N列的数组x中,且有以下程序段sum=0; \text {for} (i = 0; i < M; i + +) \text {sum} + = x [ i ] [ 0 ] + x [ i ] [ N - 1 ]; \text {for} (j = 1; j < N - 1; j + +) \text {sum} + = x [ 0 ] [ j ] + x [ M - 1 ] [ j ]; 以上程序段计算的是做这题 →
- 判断在任何情况下,对二维数组的初始化都可以省略第一维的大小。正确错误做这题 →
- 判断数组定义为 int a[3][2]={1,2,3,4,5,6},则数组元素 a[2][1]的值为 6。正确☑错误做这题 →
- 判断int x[[3]={1,2,3,4,5,6,7},表示数组×是3行3列的数组。正确 错误做这题 →
- 判断int m[2][3]={0};表示数组 a 中只有数组元素 a[0][0]可得初始值 0。正确☑错误做这题 →
- 判断在C语言中,二维数组中元素排列的顺序是:按行存放,即在内存中先顺序存放第一行的元素,再dh放第二行的元素。正确错误做这题 →
- 判断在C语言中,二维数组元素在内存中的存放顺序可以随意调整变化。正确错误做这题 →
- 判断数组是一种构造型数据,即是若干相同类型的数据的集合。正确错误做这题 →
- 判断二维数组的下标可以是float数据类型。正确错误做这题 →
- 判断若有int a[3][4];则 a[3][4]是对二维数组的正确访问。正确错误做这题 →
- 填空若有以下程序 #include <stdio.h> main() { char w[20], a[5][10]={"abcdef", "ghijkl", "mnopq", "rstuv", "wxyz"}; int p[6][2]={{0,1},{1,5},{0,0},{0,2},{1,4},{4,4}}, i; for (i=0; i<6; i++) w[i]=a[ p[i][0 ][ p[i][1] ]; puts(w); } 则程序的输出结果是做这题 →
- 填空有以下程序 #include <stdio.h> #define N 4 int fun( int a[][N] ) { int i,j,x=0; for(i=0;i<N;i++) for(j=0;j<N;j++) if (i == j) x += a[N-1-j][i]; return x; } main( ) { int x[N][N]={{1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,17}}, y; y = fun(x); printf("%d\n",y); } 程序运行后的输出结果是做这题 →
- 填空有以下程序 main() {int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0; for(i=0;i<4;i++) s+=aa[i][1]; printf("%d\n",s); } 程序运行后的输出结果是____。做这题 →
- 单选设有: static char str[]=Non \log Sh; 则执行printf("%d\n",strlen(strcpy(str,"JiangSu")));后的输出结果为 o做这题 →
- 单选以下程序的输出结果是 C #include <stdio.h> #include <string.h> main(){ char b1[8]="goddwer",b2[8],*pb=b1+3; while(--pb>=b1) strcpy(b2,pb); printf("%d\n",strlen(b2)); }做这题 →
- 单选设有如下的程序段 char str[]="Hello"; char *ptr; ptr=str; 执行完上面的程序段后, \star ( \mathrm { p t r } + 5 ) 和 str[5]值为做这题 →
- 单选下面程序的输出是 char s[]="ABCD"; main() { char *p; for(p=s;p<s+4;p++) printf("%s\n",p); } ①ABCD ②A ③D ④ABCD BCD B C ABC CD C B AB D D A A做这题 →
- 单选有以下程序 main() {char c[]={'A','B','C','D','E','F','G','H','\0'}; n=sizeof(c);m=strlen(c); printf("%d,%d\n",n,m); } 程序运行后的输出结果是做这题 →
- 单选下列选项中正确的语句组是做这题 →
- 单选有以下程序 #include <string.h> main() { char p[]={'a','b','c'},q[10]={'a','b','c'}; printf("%d %d\n",strlen(p),strlen(q)); } 以下叙述中正确的是做这题 →
- 单选若有定义语句:char s[10]="1234567\0\0";,则strlen(s)的值是做这题 →
- 判断字符串指针实际是一个字符指针,指向字符串的第一个字符。正确错误做这题 →
- 判断字符串可以直接赋值给一维数组,如S1=”abc”。正确错误做这题 →
- 判断字符数组中字符串可以整体输入输出。正确错误做这题 →
- 判断if(a==b)语句可用于判断两个字符串 a 和b是否相等。正确错误做这题 →
- 判断字符个数多的字符串比字符个数少的字符串大。正确错误做这题 →
- 判断字符'\0'是字符串结束标记,其ASCI值为0。正确错误做这题 →
- 判断字符串实质是一个一维字符数组。正确错误做这题 →
- 判断字符数组和字符指针的使用方法完全相同。正确错误做这题 →
- 填空当执行下面的程序时,如果输入ABC,则输出结果是 o #include "stdio.h" #include "string.h" main() { char str[20]="0123456"; scanf("%s", str);strcat(str,"789"); puts(str); }做这题 →
- 填空有以下程序 #include <string.h> main(){char *p="1234567\0890\0"; printf("%d\n",strlen(p)); } 程序运行后的输出结果是做这题 →
- 填空以下程序中函数f的功能是将n个字符串,按由小到小的顺序进行排序。 #include <string.h> void fun(char str[][12],int num) { char tmp[15]; int i,j; for(i=0;i<num-1;i++) for (j=i+1;j<num;j++) if(strcmp(str[i],str[j])>0) { strcpy(tmp,str[i]); strcpy(str[i],str[j]); strcpy(str[j],tmp);} } main() {char p[][12]={"abc","cdef","aabdef","dcdbe","aabd"}; fun(p,5); printf("%d\n",strlen(p[0])); system("pause"); }做这题 →
- 单选对长度为 n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是做这题 →
- 判断对长度为8的线性表进行冒泡排序,最坏情况下需要比较的次数为56。正确错误做这题 →
- 综合函数 orderby是排序的功能,根据传入的 flag的值不同 ASC 升序,DESC 是降序。请根据已知代码完成空缺处代码填写。 #include <stdio.h> #define SWAP(A,B) A=A+B;B=A-B;A=A-B #define ARRLEN(arr) (sizeof(arr)/sizeof(arr[0])) #define DESC 1 //升序 #define ASC 0 //降序 void standby(int a[],int len,int flag); //选择排序 flag :ASC 升序, DESC 降序 void print(int a[], int len);//输出数组元素 int main() { int arr[] = { 789,345,20,34,234,12,0,134,567,56}; int length = ARRLEN(arr); printf("排序前:\n"); print(arr, length); standby(arr, length,DESC);//降序 printf("排序后:\n"); print(arr, length); return 0; } /* 实现数据的排序 flag: ASC 升序, DESC 降序 */ void standby(int a[], int len, int flag) { int m,i,j; for (i = 0; i < len - 1; i++) { m = i; for (j = i + 1; j < len ; j++) { if (!flag&&(__________) || ______&&(a[j] > a[m])) { m = j; } } if (__________) { ________(a[i], a[m]); } } } void print(int a[], int len) { int i; for (i = 0; i < len; i++) { printf("a[%d]=%d ", i, a[i]); } printf("\n"); system("pause"); }做这题 →
- 综合如下代码中bubble函数是冒泡排序实现代码,需要实现降序。冒泡的排序算法原理: 如果排序是升序,则从前面往后开始,依此比较相邻的两个元素的大小,较大的下沉,较小的上升。第一轮过后,最大的元素就放在最后一位了。第二轮过后,次大的元素排序到倒第二个,以此类推。 如果排序是降序,则从前面往后开始,依此比较相邻的两个元素的大小,较小的下沉,较大的上升。第一轮过后,最小的元素就放在最后一位了。第二轮过后,次小的元素就放在倒数第二位了,之后依此类推。 #include <stdio.h> #define SWAP(A,B) A=A+B;B=A-B;A=A-B #define ARRLEN(arr) (sizeof(arr)/sizeof(arr[0])) void bubble(int a[],int len);// 冒泡排序 void print(int a[], int len);//输出数组元素 int main() { int arr[] = { 789,345,20,34,234,12,0,134,567,56}; int length = ARRLEN(arr); printf("排序前:\n"); print(arr, length); bubble(arr, length); // 冒泡排序 printf("排序后:\n"); print(arr, length); return 0; } /* 实现数据的排序 (降序) */ void bubble(int a[],int len) { int i, j; for (i = 0; i < len - 1; i++) { for (j = 0; j < _______; j++) { if (__________) { ________; } } } } void print(int a[], int len) { int i; for (i = 0; i < len; i++) { printf("a[%d]=%d ", i, a[i]); } printf("\n"); system("pause"); }做这题 →
- 综合二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与×做比较,如果x=a[n/2],则找到x,算法中止;如果 x<a[n/2],则只要在数组 a的左半部分继续搜索 x,如果 x>a[n/2],则只要在数组 a 的右半部搜索x。请补全以下代码。 #include <stdio.h> #include <stdlib.h> //二分查找,找不到返回-1,找到了返回元素值。 int binary_search(int list[],int len,int target){ int low = 0; int hight = len-1; int middle; while(low <= hight){ middle = ________; if(__________) printf("已找到该值,数组下标 为:%d\n",middle); return list[middle]; }else if(list[middle] > target){ hight = middle -1; }else if(list[middle] < target){ low = ________; } } printf("未找到该值"); return -1; } int main(){ int arr[] = {1,2,3,5,7,9,12,14,18,19,20}; int b = binary_search(arr,sizeof(arr)/sizeof(arr[0]),1); printf("要找的元素=%d\n",b); system("pause"); return 0; }做这题 →
- 判断库函数 strlen遇到'0(是结束标记符含义时)或者0就返回此之前的字符串的长度。正确 错误做这题 →
- 填空char s1[20] = "maintain",s2[] = "enance stricty(s1+5;s2);printf("%s",s1)输出结果为____。做这题 →
- 单选以下能对一维数组 a 进行初始化的语句是:()做这题 →
- 填空下面程序的输出结果是 #include <stdio.h> void main(void){ int i, a[10]; for(i=9;i>=0; i--) a[i]=10-i; printf("%d%d%d\n",a[2],a[5],a[8]); }做这题 →
- 判断在C语言中,字符数组在定义的同时赋初值,可以用单个字符一个一个的赋值。做这题 →
- 单选数组定义为 int a[10][10];,则数组 a 有( )个数组元素。做这题 →
- 单选设有语句”int a[]={3,4,5,9,8,7};”则表达式 a[1]-a[4]的值是( )做这题 →
- 单选以下不能正确定义二维数组的是( )做这题 →
- 单选在执行 char str[10]="china\n\0";strlen(str)的结果是( )做这题 →
- 单选以下程序的输出结果是( ) #include <stdio.h> #include<string.h> main() { char st[20]="2000\0\t\""; printf("%d,%d\n",strlen(st),sizeof(st)); }做这题 →