设 char ch
C语言练习

第一章填空题1.C语言是一种的程序设计语言。
2.C程序是由函数构成的,一个C源程序至少包含一个函数。
3.C程序的执行是从函数开始。
4.一个函数由和两部分组成。
5.函数体一般包括和。
6.C源文件取名,后缀一般为,编译源代码,生成目标文件,其后缀名一般为,对目标文件进行连接,生成可执行文件,其后缀名一般为。
7.一个C语言的语句至少应包含一个。
8.用对C程序中的任何部分作注释。
第三章填空题1.变量代表内存中具有特定属性的一个。
2.在C语言中,要求对所有用到的变量作强制定义,也就是“先,后”。
3.在定义变量的同时给变量一个值,称为。
4.#define PI 3.14 说明PI为。
5.C语言规定标识符只能由、和三种字符组成,且第一个字符必须为或。
6.在C语言中整数可用________进制数、________进制数、________进制数三种数制表示。
7.C语言中的实数又称,它有两种表示形式、。
8.在微机内存中,字符型数据以____________存储。
9.表达式 b=35/7*5-7%4*4 运算后 b= 。
10.已有变量a,其值伪2,则表达式(a=3*5),a+=2,a++ 的值为,a的值为。
选择题1.以下符合C语言语法的实型常量是()。
A 1.2E0.5B 3.14159EC 0.5E-3D E152.在C语言中运算对象必需是整型的运算符是()。
A %B /C *D !3.已有变量a,其值伪9,表达式a+=a-=a+a的值伪()。
A -9B -18C 9D 184.下列选项中,能用作标识符的是()。
A 2_int_B *1_2C int-2_D _123a5.在C语言提供的合法的关键字是()。
A swicthB cherC defaultD Case6.如定义变量 i=3,则表达式-i++的值和i的值分别为()。
A -3 4B -4 4C -3 3D -4 37.表达式(b=(2,3),b+=2 )%15+b 的值为( )。
C语言基础题及答案

C语言基础题及答案1、一个C语言的源程序中[正确答案:A]。
A)必须有一个主函数B)可以有多个主函数C)必须有主函数和其他函数D)可以没有主函数2、关于C程序的主函数,以下描述中正确的是[正确答案:B]。
A)C程序的第一个函数称为主函数,程序从该函数开始运行。
B)C程序的主函数即是main函数,程序从该函数开始运行。
C)C程序可以有多个主函数,程序从第一个主函数开始运行。
D)C程序可以没有主函数,程序从第一个函数开始运行。
3、C程序中,return语句的作用是[正确答案:D]。
A)终止程序运行B)返回到上层循环C)返回到外层结构D)返回到上层函数4、C语言程序的3种基本结构是[正确答案:A]。
A)顺序结构,选择结构,循环结构B)递归结构,循环结构,转移结构C)嵌套结构,递归结构,顺序结构D)循环结构,转移结构,顺序结构5、以下对C程序的描述中正确的是[正确答案:A]。
A)C程序总是从main()函数开始执行。
B)C程序可以从程序中的任何函数开始执行。
C)C程序总是从第一个定义的函数开始执行。
D)C程序中的main()函数必须放在程序的开始部分。
6、关于C程序第1行的包含语句,以下写法中正确的是[正确答案:D]。
A)#include stdio.h B)#include'stdio.h'C)#include(stdio.h)D)#include<stdio.h>7、关于C语言程序,正确的编程流程应该是[正确答案:A]。
A)编辑→保存→编译→运行B)编译→编辑→运行→保存C)保存→运行→编辑→编译D)运行→编译→保存→编辑8、下列的哪个不是C语言的关键字[正确答案:D]。
A)while B)auto C)break D)printf9、下列的哪个不是C语言的算术运算符[正确答案:C]。
A)+B)%C)=D)-10、下列的哪个不是C语言的关系运算符[正确答案:C]。
A)>=B)<=C)=D)!=11、下列的哪个是错误的描述[正确答案:D]。
C语言程序设计复习题(一)1的阅读程序部分

} case 2: printf("third\n"); } } 结果:first third 4.下列程序运行结果是【 -1 】 。 #include<stdio.h> main( ) { int n=4; do n--; while (n); printf("%d\n",--n); } 5.下列程序运行结果是【 】 。 #include<stdio.h> dec( ) { static int x=5; x--; printf("%d",x); } main( ) { int k; for(k=0;k<3;k++) dec( ); } 结果:4 3 2 五.程序填空(请依题意,将程序中括号部分补充完整。每题 3 分,共 15 分) 1. 一个正整数与 3 的和是 5 的倍数,与 3 的差是 6 的倍数,编写一个程序求符合条件的最 小数。 #include <stdio.h> main() { int n; n=1; while (1) { n=n+1; if 【 (1) (n+3)%5==0&&(n-3)%6==0 】break; } printf("n=%d",n); } 2.将两个字符串合并成一个字符串。 #include <stdio.h> main() { char s1[20],s2[20],s3[40]; int i,j; printf("String1:"); gets(s1); printf("String2:》复习题(二)
一.单选题(在本题的每一小题的备选答案中,只有一个答案是正确的,请把你认为正确答 案的题号,填入题中的括号内。多选不给分。每题 1 分,共 20 分) 1.在 C 语言中,不同类型数据混合运算时,要先转换成同一类型后进行运算。设一表达式 中包含有 int、 long、 unsigned、 char 类型的变量和数据, 则表达式最后的运算结果是 【 ④ 】 类型数据。 ① int ② char ③ unsigned ④ long 2.若 int 型数据占 2 个字节,则以下语句的输出为 【 ④ 】 。 int k=-1; printf(“%d,%u\n”,k,k); ① -1,-1 ② -1,32767 ③ -1,32768 ④ -1,65535 3.设 x 和 y 均 为 int 型 变 量 , 则 执 行 以 下 语 句 后 的 输 出 为 【 ① 】 。 x=1 5; y=5 ; pri ntf( “ %d\n ” ,x%= (y%= 2)); ① 0 ② 1 ③ 6 ④ 12 4.若 x 为 uns igned in t 型 变 量 , 则 执 行 以 下 语 句 后 的 x 值 为 【 ④ 】 。 x=6 5535; pri ntf( “ %d\n ” ,x); ① 65535 ② 1 ③ 无定值 ④ -1 5 . 判断 char 型变量 c1 是否为小写字母的最简单且正确的表达式为【 ④ 】 。 ① ’a’<=c1<=’z’ ② (c1>=a)&&(c1<=z) ③ (‘a’<=c1)||(‘z’>=c1) ④ (c1>=’a’)&&(c1<=’z’) 6 . 以下不正确的 if 语句是【 ③ 】 。 ① if (x>y); ② if (x= =y) x+=y; ③ if (x!=y)scanf(“%d”,&x) else scanf(“%d”,&y); ④ if (x<y) {x++;y++;} 7 . C 语言对嵌套 if 语句的规定是:else 总是与【 ④ 】 配 对 。 ① 其 之 前 最 近 的 if ② 第 一 个 if ③ 缩 进 位 置 相 同 的 if ④ 其 之 前 最 近 且 不 带 else 的 if 8 . 设有说明语句:int a=2,b=7,c=5;则执行以下语句后,输出为【 ② 】 。 switch(a>0) { case 1: switch(b<0) { case 1: prin tf(“@”); break; case 2: p rintf(“!”); b reak; } case 0: switch(c==5) { case 0: prin tf(“*”); break; case 1 : p rintf(“#”); b reak; default:printf(“$”); break; } defau lt: p rin tf(“&”); } ① @#& ② #& ③ *& ④ $& 9 . 若有说明语句:int w=2,x=3,y=3,z=4;则表达式 w>x?w:z>y?z:x 的值是 【 ① 】 。 ① 4 ② 3 ③ 2 ④ 1 10.下面有关 for 循环的正确描述是【 ④ 】 。 ① for 循环只能用于循环次数已经确定的情况 ② for 循环是先执行循环体语句,后判定表达式
C语言试题与答案

大学C语言考试题库第1章 C语言概述习题1. 单项选择题(1) C 语言是在 B 语言的根底上产生的。
A. AB. BC. DD. E(2) 在 C 语言中,每个语句必须以 D 结束。
A. 回车符B. 冒号C. 逗号D. 分号(3) 标识符和关键字间,要用 C 隔开。
A. 回车符B. 冒号C. 空格D. 分号(4) 用 C 语言编写的源文件经过编译,假设没有产生编译错误,则系统将( B )。
A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D.自动保存源文件(5) 以下说法中正确的选项是( B )。
A. 由于 C 源程序是高级语言程序,因此肯定要在 TC 软件中输入B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入C. 由于C 程序是高级语言程序,因此输入后即可执行D. 由于 C 程序是高级语言程序,因此它由命令组成(6) 以下说法中正确的选项是( A )。
A. C 语言程序由主函数和 0 个或多个函数组成B. C 语言程序由主程序和子程序组成C. C 语言程序由子程序组成D. C 语言程序由过程组成(7) 以下说法中错误的选项是( D )。
A. 主函数可以分为两个局部:主函数说明局部和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行2. 填空题(1) C 语言只有 32 个关键字和 9 种操纵语句。
(2) C 语言是一种“中级语言〞,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。
(3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。
(4) 在 C 语言程序中同意出现的字符集是 ASCII码字符集。
(5) C 语言的程序中有特别含义的英语单词称为保存字。
(6) C 语言标识符的长度是前 8 位有效。
(7) C 语言中,标识符的定义规则是以字母或下划线为开头。
12C语言期中概念练习

实验结束将答案发至yinhm@,标题取学号姓名期中练习一、选择题1.设n为16位整数,则n的取值范围是:BA: -32768至32768 B: -32768至32767C: 0至65536 D: 0至655352.变量a与b分别初始为10与20,正确的语句是:BA: int a=10, int b=20; B: int a=10, b=20;C: int a=10; b=20; D: int a=10; b=20,3.以下选项中正确的C语言常量是:CA: 0xEfGh B: 'XYZ'C: 12.34e5 D: '\5A'4. 设整数n的值为十进制-8, 以16位二进制存贮该数时,其编码是(_B___) A: 0000 0000 0000 1000 B: 1000 0000 0000 1000C: 1111 1111 1111 0111 D: 1111 1111 1111 10005. 设有定义int x=99; 请写出以下程序段的输出结果(__B__)if( x==99)printf(“$$”);elseprintf(“@@”);printf(“00”);A: $$ B: $$00C: $$@@ D: $$@@006.设有double x;char s[50];输出双精度浮点数x和字符串s,正确的语句是:AA: printf("%lf %s",x,s); B: printf("%ld %s",x,s);C: printf("%lf %s",&&x,s); D: printf("%lf %s",x,s[50]);7.语句printf("%.1f,%d\n",10./4,10/8);的输出是:BA: 2.5,1.25 B: 2.5,1C: 1,1.25 D: 2,1.258.设有char ch; 与语句“ch=getchar();”等价的语句是:BA: scanf("%c",ch) B: scanf("%c",&ch);C: printf("%c",ch); D: printf("%c",&ch);9. 设有定义int a; char c; 执行输入语句scanf(“%d%c”,&a,&c);若要求a和c得到的值为10和'Y',请选择正确的键盘输入方式(__B___)A) 10,Y B) 10YC) 10<空格>Y D) 10<回车>Y10. 设int n,m; 使m为n的十进制百位数的语句是:CA: m = n/100; B: m = n%100;C: m = n/100%10; D: m = n%10/100;11.设float x,y; 使y为x的小数部分的语句是:DA: y = (int)x; B: y = int(x);C: y = x-(int)x; D: y = x-int(x);12.已知int i,a;执行语句"i=(a=2*3,a*5),a+6;"后,变量i的值是(__c___) A:6 B:12C:30 D:3613. 与表达式:!a ? 10 : 20 等价的表达式是(_A____)A) a==0 ? 10 : 20B) a!=0 ? 10 : 20C) a!=1 ? 10 : 20D) a ? 10 : 2014.与语句“m += (x=5) + (--y);”等价的语句序列是:CA: m=m+x+y; x=5; y=y-1; B: x=5; m=m+x+y; y=y-1;C: x=5; y=y-1; m=m+x+y; D: y=y-1; m=m+x+y; x=5;15. 设int n; 对应“n为二位数(10至99)”的判断表达式是:BA: 10<=n<=99 B: 10<=n &&&& n<=99C: 10<=n || n<=99 D: 10<=n, n<=9916. 设char ch; 判断“ch为数字字符”的表达式是:AA: ch>='0' &&&& ch<='9' B: ch>0 &&&& ch<9C: ch>='0' || ch<='9' D: ch>=0 || ch<=917. 与语句“x+=(a++==b)?c:--d;”功能等价的语句段是:AA: if (a==b) { a=a+1; x=x+c; }else { a=a+1; d=d-1; x=x+d; }B: a=a+1;if (a==b) { x=x+c; }else { d=d-1; x=x+d; }C: if (a==b) { a=a+1; x=x+c; }else { a=a+1; x=x+d; d=d-1; }D: if (a==b) { a=a+1; x=c; }else { a=a+1; d=d-1; x=d; }18.设有int n=50;写出下列语句的运行结果 Bswitch (n/10){ case 6: printf("@"); break;case 5: printf("#");default: printf("$")}A: @ B: #$C: $ D: @#$19. 设有in i; 写出下列语句的运行结果: Cfor (i=0;i<5;i++)printf("%d",i);A: 0123456 B: 012345C: 01234 D: 012320. 设有char ch; 写出下列语句的运行结果:Cfor (ch='B';ch<='F';ch++)putchar(ch);A: ABCDEFG B: ABCDEFC: BCDEF D: BCDEFG21. 以下一维数组定义中,正确的是:AA: int a[5] = { 1,2,3,4,5 }; B: int a[5] = (1,2,3,4,5);C: int a[1 to 5]; D: int a[];22.以下字符串定义与赋值中,正确的是:AA: char s[80]; s = {'A', 'B', 'C'}; B: char s[80]; s = "ABC";C; char s[80] = {"A", "B", "C"}; D: char s[80] = "ABC";23. 在字符串常用函数中,用于复制字符串的函数是:BA: strlen B: strcpyC: strcat D: strcmp24. 设有定义:int i, a[10]; 能正确输入a数组各元素的语句是:BA:i=10; scanf("%d", &a[i]); B:for(i=0; i<=9; i++) scanf("%d", a+i); C:for(i=0;i<10;i++)scanf("%d",a[i]);D:for(i=0;i<10;i++)scanf("%d", &a);25. 设有定义:int a[10]={6,7,8,9,10};正确的解释是:BA:将5个初值依次赋给a[1]至a[5] B:将5个初值依次赋给a[0]至a[4]C:将5个初值依次赋给a[6]至a[10] D:将5个初值依次赋给a[5]至a[9]26. 设有int a=70; 写出下列语句的运行结果Aif ( a>=60 )if (a>=80)printf("Very Good");elseprintf("Good");elseif (a>=40)printf("Bad");elseprintf("Very Bad");A: Good B: Very GoodC: Bad D: Very Bad27. 设有说明int n; char str[80];与函数调用:n=hex2dec(str);则函数hex2dec正确的函数说明应该是:AA: int hex2dec(char str[]); B: void hex2dec(char str[]);C: int hex2dec(char str); D: void hex2dec(char str);28.下列选项中合法的函数说明语句是:AA: double func( int a, int b ); B: double func( int a, b );C: double func( a, int b ); C: double func( a, b );29.设有下列变量说明与函数说明,则合法的函数调用语句是:Aint func( int a[], int n );int a[10], n, x;A: func( a, n ) = x; B: x = func( a, n );C: x = func( a[], n ); D: x = func( a[10], n );30.选出下面函数定义中正确的形式(_D____)A) double fun(int x, int y){z=x+y; return z;}B) int fun(int x, y){int z; z=x+y; return z;}C) fun (int x, int y){int x,y; double z; z=x+y; return z;}D) double fun(int x, int y){double z; z=x+y; return z;}等的字符删除。
C语言选择题第一部分

C语言选择题第一部分1. 以下对C程序的描述中正确的是(C)。
A) C程序总是从第一个定义的函数开始执行。
B) C程序总是从最后一个定义的函数开始执行。
C) C程序总是从main()函数开始执行。
D) C程序中的main()函数必须放在程序的开始部分。
2. 关于C程序第1行的包含语句,以下写法中正确的是D)。
A) #include stdio.hB) #include 'stdio.h'C) #include (stdio.h)D) #include <stdio.h>3. 关于C语言程序,正确的编程流程应该是:(A)。
A) 编辑→保存→编译→运行B) 编译→编辑→运行→保存C) 保存→运行→编辑→编译D) 运行→编译→保存→编辑4. 以下选项中正确的C语言常量是(C)。
A) 0xEfGhB) 'XYZ'C) 12.34e5D) '\5A'5. 以下选项中,合法的C语言用户标识符是(D)。
A) b-aB) 5abC) intD) INT6. 以下选项中,三种类型都是C语言的基本类型的是(C)。
A) int, long, realB) integer, short, doubleC) int, float, charD) int, decimal, char7. 设int n=-1; 则n在内存中的16位编码是(A)。
A) 1111 1111 1111 1111B) 1000 0000 0000 0001C) 1111 1111 1111 1110D) 0000 0000 0000 00008. 设要定义n为整型变量,定义x为双精度实型变量,正确的语句是C)。
A) int n, double x,B) int n, double x;C) int n; double x;D) int n; double x,9. 以下四项中,不合法的C语言用户标识符是(D)。
c语言的同步练习

第1章一、单选题1.C语言并不是一种严格的算法语言,在以下关于C语言的不严格的叙述中,错误的是(A)。
A 大写字母与小写字母的意义相同B 有些不同类型的变量可以在一个表达式中运算C 在赋值表达式中赋值号左边的变量和右边的值可以是不同类型D 同一个运算符号在不同的场合可以有不同的含义2、以下说法中,不正确的是(B)A C语言是一种函数式语言,有且仅有一个main()函数B 在C源程序中,可以出现多个main()函数C 函数是由函数说明部分和函数体组成的D 函数体是由若干说明语句和执行语句组成的二、填空题1.C程序是由函数构成的,一个C源程序至少包含一个 main函数。
2.C语言规定:main()函数可在源程序的任何位置。
3.C程序的执行是从main 函数开始,在main函数中结束。
4.在C语言中,一个函数由函数体和函数首部两部分组成。
5.函数体一般包括声明部分和执行部分。
6.C程序书写格式规定,每行可写几个语句,一个语句可以写在多行。
一个C语言的语句至少应包含一个;。
7.用 /*……* / 可对C程序中的任何部分作注释。
8.C源文件取名,后缀一般为 .c 。
编译源代码,生成目标文件,其后缀名一般为 .obj 。
对目标文件进行连接,生成可执行文件,其后缀名一般为 .exe 。
第2章一、单选题1、下列不是算法的特征的是(D)。
A 有效性B 确定性C 有穷性D 特殊性二、填空题(多空答案之间请用##隔开,即使有空不填也要用##分隔。
例如有两空答案分别为a=2 b=3而您只知道b=3的话,答案须写为##b=3)●一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下,问第10次落地时,共经过多少米?第10次反弹多高?请编程实现。
●找出1至99之间的全部同构数。
同构数是这样一组数:它出现在平方数的右边。
例如:5是25右边的数,25是625右边的数,5和25都是同构数。
●编写满足条件1+2+3+…+n≥500的最小n及和s的程序。
C程序设计二级考试题库

C、double a[1][4]; D、float a(3)(4)
18、若已定义char s[10];在下面表达式中不能表示s[1]的地址的是(B )。 (2分)
A、s+1 B、s++
C、&s[0]+1 D、&s[1]
本卷共有4道大
一、单项选择题(25道小题,共50分)
1、以下说法中正确的是(C)(2分)
A、C语言程序总是从第一个的函数开始执行 B、在C语言程序中,要调用的函数必须在main()函数中定义
C、C语言程序总是从main()函数开始执行 D、C语言程序中的main()函数必须放在程序的开始部分
7、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是 (B)(2分)
A、 INPUT x、y、z; B、 scanf("%d%d%d",&x,&y,&z);
C、 scanf("%d%d%d",x,y,z); D、 read("%d%d%d",&x,&y,&z);
C、p+=3,*p++ D、p+=2,++*p
24、设有说明语句“struct stu{ int a; float b;}stutype;”,则叙述不正确的是(C )(2分)
A、struct是结构体类型的关键字。 B、struct stu是用定义的结构体变量名。 D、a和b都是结构体变量。
38、c语言中( D )。(2分)
A、不能使用do-while语句构成的循环
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设 char ch; 以下不正确的赋值语句是_____。
选择一个答案A. ch=68;B. ch="\\";C. ch='\xef';D. ch='\123';在 C 语言中int, long, unsigned 和 char这四种类型数据的转换规律是_____。
选择一个答案a. char->int->long->unsignedb. int->unsigned->long->charc. char->int->unsigned->longd. char->unsigned->long->int设a=2,b=3;则表达式a^b>>2的值是_____。
选择一个答案A. 00000100B. 00000011C. 00000110D. 00000010以下关于源程序与目标程序的关系,不正确的是。
选择一个答案A. 用C语言编写的源程序需要经过编译程序编译为目标程序B. 不同高级语言的编译器应该是一样的,都负责将源程序编译为目标程序C. 用机器语言编写的源程序就是目标程序D. 用汇编语言编写的源程序需要经过汇编程序汇编为目标程序C语言中,“\x5d”在内存中占用的字节数是____。
选择一个答案A. 4B. 5C. 1D. 2下列符号中能用作C标识符的是____。
选择一个答案A. breakB. 2xyC. _abcD. &a3有如下程序段:int a1,a2;char c1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);若要求 a1,a2,c1,c2 的值分别为 10 , 20 , A , B 正确的数据输入是______。
选择一个答案A. 10 A20BB. 10 A 20 BC. 10A20 BD. 10A 20BC语言的短整型数值在计算机中占用的字节个数是_______。
选择一个答案A. 1B. 2C. 4D. 3若有下列定义和语句:double r=1 ,*p=&r; *p=r; 则下列说法正确的是__ 。
选择一个答案A. 在double r=1,*p=&r; 把r的地址赋给了p所指的存储单元B. 语句*p=r; 把变量r的值赋给指针变量pC. 以上两处的*p含义相同,都说明给指针变量p赋值D. 语句*p=r; 把变量r的值放回r中int arr[10], i, k = 0;for ( i = 0; i < 10; i++) arr[i] = i;for ( i = 0; i < 4; i++) k += arr[i] + i;选择一个答案A. 90B. 45C. 20D. 12若有以下定义和语句,则选项中错误的语句是 __。
int a=4,b=3,*p,*q,*w;p=&a; q=&b; w=q; q=NULL;选择一个答案A. *p=*w;B. *p=b;C. w=p;D. *q=0;以下能对一维数组a进行正确初始化的形式是 __。
选择一个答案A. int a[10]=(0,0,0,0,0);B. int a[10 ]={, ,1, ,2,3};C. int a[10]={10*1};D. int a[10]={ }以下程序给数组所有元素输入数据,填入 __能完成该功能。
#include<stdio.h>int main()int array[5],i=0;while(i<5)scanf("%d", __);return 0;}选择一个答案A. &array[++i]B. array+(i++)C. &array[i+1]D. array+i以下程序段有错,错误原因是 __。
int main{int *p, i;char *q, ch;p=&i;q=&ch;*p=40;*p=*q;.....选择一个答案A. *p中存放的是地址值,因此不能执行语句*p=40;B. q虽然指向了具体的存储单元,但该单元无确定值,所以执行语句*p=*q无意义C. p和q的类型不一致,不能执行语句*p=*qD. q没有执行具体的存储单元,所以*q没有实际意义分数: 0.9/1下列对指针p的操作,正确的是。
选择一个答案A. int a[5]={ 1,2 ,3,4,5},*p=&a; *p=5 ;B. float a[5]; int *p=a;C. int a,*p=&a;D. int *p ; *p=2 ;此题考查的是对指针的操作。
答案A 的错误在于,在定义了指针以后,并没有获得确定的地址,而通过*p=2 向一个不确定的地址中写入内容是很危险的,将可能导致程序意外终止;答案B 的错误在于,指针p 的基类型是int 型,数组a 的基类型也是int 型,但是&a 的基类型是int [5] ,所以int *p=&a 不符合指针赋值类型需要一致的要求;答案D 的错误是在于,指针p 的基类型是int 型,数组a 的基类型却是float 型,所以int *p=&a 不符合指针赋值类型需要一致的要求;答案C 正确,变量a 是int 型,则&a 就是以int 型为基类型的指针值,此答案表示指针p 获得一个简单变量的地址而不是一维数组的起始地址。
以下程序段执行后,变量k的值是 __。
int arr[10], i, k = 0;for ( i = 0; i < 10; i++) arr[i] = i;for ( i = 0; i < 4; i++) k += arr[i] + i;选择一个答案A. 90B. 12C. 45D. 2若定义int m[10]={9,4,12,8,2,10,7,5,1,3},*p=m;下列哪一个表达式的结果与其他3个表达式的结果不同 __。
选择一个答案A. sizeof(m)B. sizeof(p)C. sizeof(*p)D. sizeof(*m)设 int s[10];*p=s; 以下不正确的表达式是 __。
选择一个答案A. s[2]=p[4];B. s=p+s;C. *p=s[0];D. p=s+5;8分数: 0.9/1 若int I=10; 执行下列程序后,变量I的正确结果是__。
switch ( I ) {case 9: I++;case 10: I++;case 11: I++; break;default: I++; }选择一个答案 A. 12B. 10C. 11D. 13.分数: 0.7/1.若已定义一个有返回值的函数,则调用该函数的叙述中错误的是__ 。
选择一个答案A. 函数调用可以作为一个函数形参B. 函数调用可以作为独立的语句存在C. 函数调用可以出现在表达式中D. 函数调用可以作为一个函数实参分数: 0.8/1设有下列程序段:static char b=2;void Y{ static float d=4;....... }int a=1;void X{ int c=3; ...... }关于程序段中各变量的属性,以下叙述中错误的是__ 。
选择一个答案A. a是全局变量,函数X可以访问,函数Y不能访问B. c是动态变量,函数X可访问,函数Y不可访问C. d是静态变量,函数X和函数Y都可以访问D. b是全局变量,函数X和函数Y都可以访问分数: 0.8/1下面关于复合语句的描述,不正确的是。
选择一个答案A. 复合语句可以定义自己的变量B. 复合语句之内定义的变量在复合语句之外的本函数内仍然可以使用C. 复合语句的变量和函数的局部变量可以同名D. 复合语句是由大括号包含起来的一组语句14分数: 0/1若指针p已正确定义,要使p指向两个连续的字符型动态存储单元,不正确的语句是。
选择一个答案A. p=(char *)malloc(2*sizeof(char));B. p=(char *)malloc(2);C. p=(char *)calloc(2,sizeof(char));D. p=2*(char*)malloc(sizeof(char));【解析】此题主要考查malloc 和calloc 两个函数的调用形式。
malloc函数只有一个参数,表示总共申请连续多少个字节;calloc函数需要两个参数,第一个参数表示相同空间的个数,第二个参数表示每一个元素占几个单元。
这两人函数的返回值都是void * ,因此要进行强制类型转换。
根据以上分析,以上答案B 、 C 、A 都是正确答案,因为char 类型的值只要一个字节,故两连续的字符型动态单元申请正确,与B 答案其实是一样的。
答案D 的错误在于未正确理解malloc 函数其参数的意义。
分数: 0.8/1若有以下程序:#include <stdio.h>void f(int n);int main(){void f(int n);f(5);return 0;}void f(int n){ printf("%d\n",n); }则以下叙述中不正确的是__ 。
选择一个答案A. 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB. 若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数fC. 对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明D. 函数f无返回值,所以可用void将其类型定义为无类型分数: 0.8/1写出程序的运行结果。
#include <stdio.h>void f(int n){ if{ f(n/8);printf(“%d”,n%8);}}int main(){f(123);return 0;}分数: 0.7/1如果有定义:int x=1,y=2; int *const p=&x;,则下列语句中正确的是__________。
选择一个答案A. p++B. *p=yC. scanf(”%d”,*p);D. p=&y;【解析】此题考查的是const 常类型的各种表示的含义及要求。
此题中,int *const 表示指针p 不允许改变,但是p 所指向的内容可以改变,因此,答案A 和 B 试图改变p 指针的值是错误的;答案D 本身scanf 函数的参数就有错,第二个参数不应该是*p ;答案C 是改变p 所指向的内容,因此是正确的。
分数: 0.9/1如下定义:int a=5,b=3; const int *p=&a; 下列语句合法的是。