C语言试题选择题及答案
更新时间:2023-03-13 11:26:01 阅读量: 教育文库 文档下载
★第1 题:
阅读程序,选择程序的运行结果___A___。 #include
printf(“%d\\n”, x); }
try(int n)
{ if(n>0) return(n*try(n-2)); else return(1); }
A. 15 B. 120 C. 1
D. 前面3个答案均是错误的
第2 题:
在下列结论中,只有一个是正确的,它是___A___。 A. 递归函数中的形式参数是自动变量 B. 递归函数中的形式参数是外部变量 C. 递归函数中的形式参数是静态变量
D. 递归函数中的形式参数可以根据需要自己定义存储类型
★第3 题:
阅读程序,选择程序的输出结果__A___。 #include
{ int (*g)(int,int);
int a=5, b=6, c=2;
g=f;
c=(*g)(a,b);
printf(“%d\\n”, c); }
A. 1 B. 2 C. 3
D. 前面3个答案均是错误的
第4 题:
阅读程序,选择程序的输出结果__D___。 #include
char *p=”abcdefghijklmnopq”; main()
{ while(*p++!=’e’) ; printf(“%c\\n”, *p); } A. c B. d C. e D. f
★第6 题:
阅读程序,选择程序的输出结果___D___。 #include
{ printf(”%d\\n”, ++*x); } main()
{ int a=25; prtv(&a); }
A. 23
B. 24 C. 25 D. 26
第7 题:
阅读程序,选择程序的输出结果___B___。 #include
{ static char a[ ]= ”language”, b[]=”program”; char *ptr1=a, *ptr2=b; int k;
for(k=0; k<7; k++)
if(*(ptr1+k)==*(ptr2+k))
printf(”%c”, *(ptr1+k)); }
A. gae B. ga
C. language D. 有语法错误
★第8 题:
函数调用strcat(strcpy(str1, str2), str3)的功能是__C___。 A. 将串str1复制到串str2中,然后再连接到str3之后 B. 将串str1连接到串str2之后,再复制到str3之中
C. 将串str2复制到串str1中,然后再将串str3连接到串str1之后
D. 将串str2复制到串str1中,再将串str1连接到str3之后
★第9 题:
设有以下程序段,则在main函数中使用语句__D___是无意义的。 main()
{ int min();
int a, b, c, (*p)(); p=min; ? }
min(x, y) int x, y; { ? }
A. printf(”%d\\n”, min(a,b)); B. c=min(a, b); C. c=(*p)(a,b); D. p++;
第10 题:
已知static int a[2][3]={2,4,6,8,10,12}; 正确表示数组元素地址的是__A___。 A. *(a+1) B. *(a[1]+2) C. a[1]+3 D. a[0][0]
第11 题:
已知int i, x[3][4]; 则不能将x[1][1]的值赋给变量i的语句是___C___。
A. i=*(*(x+1)+1) B. i=x[1][1] C. i=*(*(x+1)) D. i=*(x[1]+1)
★第12 题:
当c的值不为0时,在下列选项中能够将c的值赋给变量a、b的是___C____.
A. c=b=a;
B. (a=c)||(b=c); C. (a=c)&&(b=c); D. a=c=b;
第13 题:
函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。能正确执行此功能的函数是___D___。 A. funa(int *x, int *y) { int *p;
*p=x; *x=*y; *y=*p; }
B. funb(int x, int y) { int t;
t=x; x=y; y=t; }
C. func(int *x, int *y) { *x=*y; *y=*x; }
D. fund(int *x, int *y)
{ *x=*x+*y; *y=*x-*y; *x=*x-*y; }
第14 题:
已知int x[]={1,3,5,7,9,11}, *ptr=x; 则不能正确引用数组元素的语句是___B___。 A. *(ptr--) B. *(--ptr) C. *(ptr++) D. *(++ptr)
第15 题:
已知int *ptr1, *ptr2; 均指向同一个int类型一维数组中的不同
元素,k为int类型变量,则下面错误的赋值语句是___B___。 A. k=*ptr1+*ptr2; B. ptr2=k; C. ptr1=ptr2;
D. k=*ptr1*(*ptr2);
★第16 题:
已知chars1[10], *s2=”ab\\0cdef”; 则执行语句strcpy(s1,s2); 后,变量s1的内容为___A____。 A. ab B. cdef
C. ab\\0cdef D. 内容不定
第17 题:
以下有关宏替换叙述中,错误的是___D___。 A. 宏替换不占用运行时间 B. 宏无类型名
C. 宏替换只是字符替换
D. 宏名必须用大写字母表示
★第18 题:
C语言主函数main最多允许有___B___个参数。 A. 1 B. 2 C. 0 D. 3
★第19 题:
C语言的编译系统对宏定义是___D___。 A. 在程序运行时进行替换处理 B. 在程序连接时进行处理
C. 和源程序中其他C语句同时进行编译的
D. 在对源程序中其他成分正式编译之前进行处理的
第20 题:
已知int **p; 则变量p是___B___。 A. 指向int的指针 B. 指向指针的指针 C. int型变量
D. 以上3种说法均是错误的
★第21 题: 已知int i; char *s=”a\\045+045\\’b”; 执行语句for(i=0; *s++; i++); 之后,变量i的结果是__B___。 A. 7 B. 8 C. 9
D. 以上3个答案都是错误的
第22 题:
已知int i=0, j=1, *p=&i, *q=&j; 错误的语句是___D___。 A. i=*&j; B. p=&*&i; C. j=*p++; D. i=*&q;
第23 题:
已知int a[]={1,2,3,4,5,6,7,8,9,10,11,12}, *p=a; 则值为3的表达式是___A___。 A. p+=2, *(p++) B. p+=2, *++p C. p+=3, *p++ D. p+=2, ++*p
★第24 题:
已知int a[3][4], *p=a; p+=6; 那么*p和__D___的值相同。 A. *(a+6)
B. *(&a[0]+6) C. *(a[1]+2) D. *(&a[0][0]+6)
第25 题:
已知int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*ptr)[3]=a, *p=a[0];则以下能够正确表示数组元素a[1][2]的表达式是__D___。
A. *((ptr+1)[2]) B. *(*(p+5)) C. (*ptr+1)+2 D. *(*(a+1)+2)
第26 题:
已知char **s; 正确的语句是__B___。 A. s=”computer”; B. *s=”computer”; C. **s=”computer”; D. *s=’A’;
★第27 题:
已知char s[20]= ”programming”, *ps=s; 则不能引用字母o的表达式是__A___。 A. ps+2 B. s[2] C. ps[2] D. ps+=2, *ps
第28 题:
已知char b[5], *p=b; 则正确的赋值语句是__C__。 A. b=”abcd”;
B. *b=”abcd”; C. p=”abcd”; D. *p=”abcd”;
★第29 题:
已知char s[100]; int i; 则在下列引用数组元素的语句中,错误的表示形式是___D___. A. s[i+10] B. *(s+i) C. *(i+s) D. *((s++)+i)
第30 题:
已知char s[10], *p=s; 则下列语句中,错误的语句是 A. p=s+5; B. s=p+s; C. s[2]=p[4] D. *p=s[0];
第31题:(103)
以下程序的输出结果是___D___。 #include
int x=10, y=10;
printf(“%d %d\\n”, x--, --y); }
A. 10 10 B. 9 9 C. 9 10 D. 10 9
第32 题:
__B___。 已知double *p[6]; 它的含义是___C___。 A. p是指向double类型变量的指针 B. p是double类型数组 C. p是指针数组 D. p是数组指针
★第33 题:
说明语句int *(*p)(); 的含义是___D___。 A. p是一个指向int型数组的指针 B. p是指针变量,它构成了指针数组
C. p是一个指向函数的指针,该函数的返回值是一个整型 D. p是一个指向函数的指针,该函数的返回值是一个指向整型的指针
第34 题:
已知int a, *p=&a; 则下列函数调用中错误的是___D___。 A. scanf(”%d”, &a); B. scanf(”%d”, p); C. printf(”%d”, a); D. printf(”%d”, p);
第35 题:
已知int *p, a; 则语句p=&a; 中的运算符&的含义是___D___。 A. 位与运算 B. 逻辑与运算 C. 取指针内容 D. 取变量地址
第36 题:
下面程序的功能是将字符串s中所有的字符“c”删除。请选择填空。 # include
{ char s[80];
int i, j; gets(s);
for(i=j=0; s[i]!=’\\0’; i++) if(s[i]!=’c’) ___A____ s[j]!=’\\0’; puts(s); }
A. s[j++]=s[i]; B. s[++j]=s[i]; C. s[j]=s[i]; j++; D. s[j]=s[i]
第37 题:
阅读下列程序,选择程序的运行结果___B___。 #include
{ int i, k, a[10], p[3]; k=5;
for(i=0; i<10; i++) a[i]=i;
for(i=0; i<3; i++) p[i]=a[i*(i+1)]; for(i=0; i<3; i++) k+=p[i]*2;
printf(“%d\\n”, k); }
A. 20 B. 21 C. 22 D. 23
★第38 题:
下述程序的输出结果是__A___。
#include
{ printf(“%f”, 2.5+1*7%2/4); }
A. 2.500000 B. 2.750000 C. 3.375000 D. 3.000000
★第39 题:
下面程序的输出结果是___B___。 #include
{ printf(“%d\\n”, NULL); }
A. -1 B. 0 C. 1
D. 程序是错误的
第40 题:
在下面的程序段中,每行前面的数字表示行号,则下面程序___D___。 1 main() 2 {
3 int a[3]; 4 int i;
5 for(i=0; i<3; i++) scanf(“%d”, &a[i]); 6 for(i=1; i<3; i++) a[0]=a[0]+a[i]; 7 printf(“%f\\n”, a); 8 }
A. 没有错误 B. 第5行有错误 C. 第6行有错误
D. 第7行有错误
★第41 题:
在下面的程序段中,每行前面的数字表示行号,则下面程序___C___。 1 main() 2 {
3 float a[10]; 4 int i;
5 for(i=0; i<3; i++) scanf(“%d”, &a[i]); 6 for(i=1; i<3; i++) a[0]=a[0]+a[i]; 7 printf(“%f\\n”, a[0]); 8 }
A. 没有错误
B. 第3行有错误 C. 第5行有错误 D. 第7行有错误
★第42 题:
下面程序段的运行结果是__B__。 char c[]=”\\t\\v\\\\\\0will\\n”; printf(“%d”, strlen(c)); A. 14 B. 3 C. 9
D. 字符串中有非法字符,输出值不确定
第43 题:
下面程序段的运行结果是___D___(其中~表示空格)。 char a[7]=”abcdef”, b[4]=”ABC”; strcpy(a, b);
printf(“%c”, a[5]); A. ~ B. \\0
C. e D. f
第44 题:
若要求:如果字符串s1大于字符串s2则要执行if语句的语句1,应当使用___D___。 A. if(s1>s2)
B. if(strcmp(s1>s2)) C. if(strcmp(s2>s1)>0) D. if(strcmp(s1>s2)>0)
第45 题:
已知char a[20], b[20]; 则以下正确的输入语句是___B___。 A. gets(a,b);
B. scanf(“%s%s”, a, b); C. scanf(“%s%s”, &a, &b); D. gets(“a”), gets(“b”);
第46 题:
若二维数组a由m列,则在a[i][j]之前的元素个数为___B____。 A. j*m+i B. i*m+j C. i*m+j-1 D. i*m+j+1
第47 题:
下列数组说明语句中错误的是___B___。
A. double x[5]={2.0, 4.0, 6.0, 8.0, 10.0}; B. int y[5]={0,1,3,5,7,9};
C. char c1[]={’1’,’2’,’3’,’4’,’5’}; D. char c2[]={’\\x10’,’\\xa’,’\\x8’};
第48 题:
在C语言中,二维数组元素在内存中的存放顺序是__A___。 A. 按行存放 B. 按列存放
C. 由用户自己定义 D. 由编译器决定
★第49 题:
已知static int a[3][4]; 则数组a中个元素__B___。 A. 可在程序的运行阶段得到初值0 B. 可在程序的编译阶段得到初值0 C. 不能得到确定的初值
D. 可在程序的编译或运行阶段得到初值0
★第50 题:
语句typedef long class的作用是___D___。 A. 建立了一种新的数据类型 B. 定义了一个整型变量 C. 定义了一个长整型变量
D. 定义了一个新的数据类型标识符
第51 题:
已知staticint a[3][4]={0}; 则下面正确的叙述是__D___。 A. 只有元素a[0][0]可以得到初值0 B. 此说明语句是错误的
C. 数组a中每个元素都可得到初值,但其值不一定为0 D. 数组a中每个元素均可得到初至0
第52 题:
以下能对外部的二维数组a进行初始化错误的语句是___C___。 A. int a[2][3]={0};
B. int a[][3]={{1,2}, {0}};
C. int a[2][3]={{1,2}, {3,4}, {5,6}}; D. int a[][3]={1,2,3,4,5,6};
for(m=0; m<4; m++) switch(m)
{ case 0: i=m++; case 1: j=m++; case 2: k=m++; case 3: m++; }
printf(“\\n%d, %d, %d, %d”, i, j, k, m); }
A. 0, 0, 2, 4 B. 0, 1, 2, 3 C. 0, 1, 2, 4 D. 0, 1, 2, 5
第85 题:
如果下列程序可以正常运行,则当从键盘输入字母A时,输出结果为___B___。
#include
{ char ch;
ch=getchar(); switch(ch)
{ case 65: printf(“%c”, ‘A’); case 66: printf(“%c”, ‘B’); default: printf(“%s”, “other”); } }
A. A
B. ABother C. Aother
D. 编译错误,无法运行
第86 题:
下列程序的运行结果是___C____。 #include
{ int a=2, b=-1, c=2; if(a
printf(“%d\\n”, c); } A. 0 B. 1 C. 2 D. 3
第87 题:
若int x=3; 且有下面的程序片段,则输出结果为___C___。 do
{ printf(“%d ”, x-=2); }while(!(--x)); A. 1 B. 3 0 C. 1 -2 D. 死循环
第88 题:
若int a=5; 则执行以下语句后,打印的结果为___A___。 do
{ printf(“-\\n”, a--); }while(!a); A. 5
B. 不打印任何内容 C. 4
D. 陷入死循环
第89 题:
若int i, x; 则for(i=x=0; i<9&&x!=5; i++, x++)控制的循环体将执行____C___次。 A. 10 B. 9 C. 5 D. 6
第90 题: 定义int i=1; 则执行语句while(i++<5); 后, i的值为___D____。 A. 3 B. 4 C. 5 D. 6
★第91 题:
在while(x)语句中的x与下面条件表达式等价的是___D___。 A. x==0 B. x==1 C. x!=1 D. x!=0
第92 题:
下面的for语句___C___。
for(x=0, y=0; (y!=123)&&(x<4); x++) ; A. 是无限循环 B. 循环次数不定 C. 循环执行4次 D. 循环执行3次
★第93 题:
执行语句for(i=0; i++<3; ); 后,变量i的值为___C___。 A. 2
B. 3 C. 4 D. 5
第94 题:(117)
若有宏定义#define MOD(x%y) x%y,则执行以下语句后的输出为___B___。
int z, a=15, b=100; z=MOD(b,a);
printf(“%d\\n”, z++); A. 11 B. 10 C. 6
D. 宏定义不合法
第95 题:
以下描述错误的是___B____。
A. break语句不能用于循环语句和switch语句外的任何其他语句
B. 在switch语句中使用break语句或continue语句的作用相同 C. 在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环
D. 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环
第96 题:
在下面的条件语句中(其中s1和s2表示是C语言的语句),只有一个在功能上与其他3条语句不等价,它是____D____。 A. if(a) s1; else s2; B. if(a==0) s2; else s1; C. if(a!=0) s1; else s2; D. if(a==0) s1; else s2;
第97 题:
为了判断两个字符串s1和s2是否相等,应当使用___D____。 A. if(s1==s2) B. if(s1=s2)
C. if(strcpy(s1, s2)) D. if(strcmp(s1, s2)==0)
★第98 题:
若要求在if后一对圆括号中表示条件“a不等于0成立”,则能正确表示这一关系的表达式为___D___。 A. a<>0 B. !a C. a=0 D. a
第99 题:(116)
要判断char类型变量m是否是数字,可以使用下列表达式___B___。 A. 0<=m&&m<=9
B. ’0’<=m&&m<=’9’ C. ”0”<=m&&m<=”9” D. 前面3个答案均是错误的
第100 题:
以下程序的输出结果是___D___。 main()
{ int a=-1, b=4, k; k=(++a<0)&&!(b--<0);
printf(“%d%d%d\\n”, k, a, b); }
A. 104 B. 103 C. 003 D. 004
正在阅读:
C语言试题选择题及答案03-13
2015年中考复习系列反比例讲义难06-22
语文【第十一季:语句衔接】:第二章:语句排序 Word版含解析.doc08-24
轧钢机PLC控制系统设计(课程设计)05-27
新学期的感受小学作文06-15
《安规》试题题库(变电专业)精简版01-19
低碳经济 考试 83分哦!10-30
2005-2015年二级建造师市政实务历年真题及答案 - 图文07-02
出库的问题及解决方案11-13
天干地支的推算方法08-16
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 选择题
- 试题
- 答案
- 语言
- 中国人民大学翻译硕士专业学位授权点审核办法
- 第1课时 11-20各数的认识(一) 精品导学案
- 水质采样复习题答案2
- 基于数据挖掘的汽车4S店客户关系管理研究
- 激发新时代的爱国主义之魂 - 新时代大学生爱国主义
- 数控车项目教学实训课教案
- 技能-思维写作-《思维的笔迹》电子版
- 东南大学物理实验 静态拉伸法测弹性模量的误差分析 - 图文
- 创意英语课外作业,提高学生自主学习能力
- 输液泵的使用方法
- 苏教版科学六年级上册知识点汇总(打印版)
- 2017年高考全国卷3政治试题解析
- 基于单片机的智能家居毕业设计正文--最终版
- 宁远县民族中学四环节课堂教学模式改革实施方案
- 炼钢生产概述
- 盗版书生产流程
- 高级车站助理值班员--理论题库
- 别让这三个行为 暴露了你的低情商
- 2014年秋学期工作计划
- 精编部编版九年级历史上册必背知识点