《C语言程序设计A》模拟考核试题及解答.
c语言程序设计试卷及答案(A)
A。 p=&a
B。 p=a
C. *p=&a
D. *p=*a
16.以下函数调用语句中,func(a+b,c-d+100);含有的实参个数是( )。
A. 1
B. 2
C。 4
D. 5
17.有以下定义:struct person{char name[9]; int age;}
struct person class[10]={“Johu",17,“Paul”,19,“Mary”,18,“Adam”,16,};
第 7 页,共 7 页
#include <stdio。h>
#define SIZE 10
struct Student_type <—--———————-—-——-———
{ char name[10];
程
int num;
序
int age;
段
char addr[15];
1
}stud[SIZE];
<—-——-——--——-----—
7。 存储字符串“program”的字符数组至少需要____个元素。
8 指针变量可以加减一个整数,例如:_______________;指针变量可以有空值,例
第 3 页,共 7 页
如_____________________________________________________.
9 以下程序从键盘输入 10 个学生的有关数据,然后把它们转存到磁盘文件上去。
{ int c; a+=a; b+=b; c=fun2(a,b);
return c; }
fun2(int a,int b)
第 5 页,共 7 页
《C语言程序设计基础》--试卷A及参考答案
《C语言程序设计基础》--试卷A及参考答案《c语言程序设计基础》试卷 (A卷)考试时间:90分钟闭卷任课老师:班级:学号:成绩:(每小题2分,共30分)、由C++源文件编译生成的目标文件的缺省)A、cppB、exeC、obj 、lik、下列中,不是C++合法的标识符()A、2mnB、m123C、kk 、a_1、C++中,基本数据类型不包括()、int B、float C、char 、class、x和y均为bool量,则x| |y为真的条件)、它们均为真 B、其中一个为真 C、《C语言程序设计基础》第 2 页共 6 页它们均为假 D、其中一个为假5、C++中,一个字符型数据在内存中占()字节。
A、4B、2C、1D、86、字符串常量”hello”的长度是()A、5B、6C、7D、87、以下语句,int i=2,j=2,m,n;m=i++;n=++j;则m,n,i,j的值分别为()A、2,3,2,2B、2,3,3,3C、2,2,3,3 D、3,3,2,28、假定a为一个整型数组名,则元素a[4]的字节地址为()A、a+4B、a+8C、a+16D、a+329、 x>0 || y==5的相反表达式为()。
A、 x<=0 || y!=5B、 x<=0 && y!=5C、 x>0 || y!=5D、 x>0 && y==5《C语言程序设计基础》第 3 页共 6 页10、在下面的函数声明中,存在着语法错误的是()A、void BC(int a , int)B、void BD(int , int)C、void BE(int , int=5)D、int BF(int x ; int y)11、循环体至少被执行一次的语句为()。
A、for循环B、while循环C、do循环 D、任一种循环12、已知一函数中有下列变量定义,其中属于静态变量的是()A、int a=5;B、staticdouble b;C、register char c;D、auto shortd;13、do语句能够改写为()语句。
国家开放大学C语言程序设计A第一次形考任务及答案
一、选择题(共40分,每小题2分)题目1在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。
A. mainB. MAINC. nameD. function题目2C语言源程序文件的缺省扩展名为()。
A. cppB. exeC. objD. c题目3由C语言目标文件连接而成的可执行文件的缺省扩展名为()。
A. cppB. exeC. objD. c题目4程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用的分隔符为()。
A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车题目5每个C语言程序文件的编译错误被分为()。
A. 1类B. 2类C. 3类D. 4类题目6不符合C语言规定的复合语句是()。
A. {}B. {;}C. {x=0;}D. {y=10}题目7C语言程序中的基本功能模块为()。
A. 表达式B. 标识符C. 语句D. 函数题目8在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和()。
A. 表达式B. 语句C. 参数表D. 函数体题目9在一个程序文件中,若要使用#include命令包含一个用户定义的头文件,则此头文件所使用的起止定界符为一对()。
A. 尖括号B. 双引号C. 单引号D. 花括号题目10在C语言程序中,多行注释语句使用的开始标记符为()。
A. //B. /*C. */D. **题目11在printf()函数调用的格式字符串中,若使用格式符为“%c”,则对应输出的数据类型为()。
A. charB. intC. floatD. double题目12在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为()。
A. 5B. 4C. 3D. 6转义字符'\\'表示的字符是()。
A. 单引号B. 双引号C. 反斜线D. 问号题目14枚举类型中的每个枚举常量的值都是一个()。
C程序设计期末考试试卷A及答案
一、判断题(每小题1分,共10个小题,共10分)1、printf可以作为变量名使用。
( )2、在标准C中,“=”是判断两个数是否相等.( )3、C语言中实参到形参传递是双向的.()4、"a"是合法的字符串常量。
()5、C语言中,以0代表“假”,以非零代表“真”.( )6、二维数组可以这样定义:int a[3][4].()7、设“char a[10]="abc””;则strlen(a)的值为3。
( )8、一个C语言源程序文件中有且只能有一个主函数。
( )9、不能用"r”方式打开一个并不存在的文本文件。
()10、打开文件使用fclose函数。
()二、选择题(每小题2分,共40个小题,共80分)1、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )【A】函数调用可以作为一个函数的形参【B】函数调用可以作为一个函数的实参【C】函数调用可以出现在表达式中【D】函数调用可以作为独立的语句存在2、以下程序运行后的输出结果是( ),︹符号表示空格。
【3、若运行时给变量x输入12,则以下程序的运行结果是( )【4、以下说法正确的是( )【A】C语言程序总是从第一个的函数开始执行【B】在C语言程序中,要调用函数必须在main()函数中定义【C】C语言程序中的main()函数必须放在程序的开始部分【D】C语言程序总是从main()函数开始执行5、若执行下述程序时,若从键盘输入6和8时,结果为( )【6、以下叙述中正确的是()【A】可以在一个函数中定义另一个函数【B】构成C程序的基本单位是函数【C】main()函数必须放在其他函数之前【D】所有被调用的函数一定要在调用之前进行定义7、下列程序段的输出结果是()【【C】1234,123.5,12345。
5 【D】1234,123。
4,1234.58、已知字母A的ASCII码为十进制数65,且C1为字符型变量,则执行语句C1=’A’+’6'—‘3’后C1的值为()【A】B 【B】C 【C】d 【D】D9、设有以下程序段( )【【C】程序段中的控制表达式是非法的【D】程序段执行无限次10、执行下面的程序段后,变量k中的值为()【11、以下程序段的描述,正确的是( )【12、有如下程序段,执行该程序段后,x的值为( )【13、以下选项中不是字符常量的是()【A】”C" 【B】'C’【C】’\xF1’【D】’\071’14、一个C语言程序是由( )【A】一个主程序和若干子程序组成【B】函数组成【C】若干过程组成【D】若干子程序组成15、请选出可用作C语言用户标识符的是( )【A】temp,fname,dir—name 【B】if,_123,var1【C】FOR,_abc,Case 【D】2a,Do,Sizeof16、以下不正确的叙述是( )【A】在C程序中,逗号运算符的优先级最低【B】在C程序中,APH和aph是两个不同的变量【C】若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变【D】当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值17、下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,在划线处应填入的选项是()【18、下面程序的运行结果是( )【19、下列程序的输出结果是()【20、下列数据中,不合法的C语言实型数据的是( )【A】0。
《C语言程序设计A》课程形成性考核作业三参考答案
元素赋值给x,则不正确的语句为( D )。 A.x=pa[3]; B.x=*(a+3); C.a=a[3]; D.x=*pa+3; 14.假定有定义“int b[10];int *pb;”,则不正确的赋值语句为( C )。 A.pb=b; B.pb=&b[0]; C.pb=b+2; D.pb=b[5]; 15.假定指针变量p定义为“int *p=new int(100);”,要释放p所指向的动态 内存,应使用语句( D )。 A.delete[p]; B.delete *p; C.delete &p; D.delete []p; 16.假定指针变量p定义为“int *p=calloc(30,sizeof(int));”,要释放p所指 向的动态内存,应使用语句( D )。 A.delete[p]; B.deldete(p); C.free[]p; D.free(p);
1、 选择题 1. 在下面的(C)函数声明语句存在语法错误。 A.AA(int a,int b); B.AA(int ,int) C.AA(int a;int b) D.AA(int a,int) 2.在下面的(C)不能作为函数的返回类型。 A.void B.int C.new D.long 3.下面正确的函数原型语句是(B)。 A.int Function(void a); B.void Function(int); C.int Function(a); D.void int(double a); 4.函数调用func(exp1,exp2),exp3*exp4-exp5)中所含实参的个数为(B) 个。 A.1 B.2 C.4 D.5 5.下面的标识符中,(C)是文件级作用域。 A.函数形参 B.语句标号 C.外部静态类标识符 D.自动类标 识符 6.下面的标识符中,(B)具有全局级作用域。 A.函数形参 B.全局变量 C.内部静态类标识符 D.自动变量 符 7.假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指 数据的地址大( C )字节。 A.1 B.2 C.4 D.8 8.假定a为一个字符数组名,则a[8]的地址比该数组的首地址大( B ) 个字节。 A.4 B.8 C.16 D.32 9.假定a为一个数组名,则下面的( B )表示有错误。 A.a[i] B.*a++ C.*a D.*(a+1) 10.用calloc函数创建具有10个整型元素的一维数组的正确语句是( C )。 A.int *p=calloc(10,2); B.int *p=callo(10; C.int *p=calloc(10,4); D.int *p=malloc(10); 11.假定变量m定义为“int m=7;”,则定义p的正确语句为( B )。 A.int p=&m; B.int *p=&m; C.int &p=*m; D.int *p=m; 12.假定k是一个double类型的变量,则定义指向k的变量p的正确语句 为( B )。 A.double p=&k; B.double *p=&k; C.double &p=*k; D.char *p=”Thank you!”; 13.假定一条定义语句为“int a[10],x,*pa=a;”,若要把数组a中下标为3的
C语言程序设计试题及答案
《C语言程序设计》(卷)考核班级学生数印数考核方式闭卷考核时间120 分钟(本试卷包括第一卷和第二卷,答卷时间总共120分钟)第一卷第一部分:基础知识(20项,共40分)1.一个C语言程序是由()组成的。
A.主程序B.子程序C.函数D.过程2.转换说明符%x的输出形式是()。
A.十进制B.八进制C.十六进制D.二进制3.若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a!=b;++a,++b) printf ( “------------“) ;的正确说法是()。
A.循环体只执行一次B.死循环C.循环体一次也不执行D.输出-----------4.若x、y、z均为int 型变量,则执行下列语句后的z值为()。
x=1; y=2; z=3; z=(x>y)?z :y ; z = (z<y)?z:x;A.1 B.4 C.2 D.35.下面标识符中,合法的用户标识符为()。
A.P#Ad B.12a C.char D._int6.‘A’+ 3 的结果是()。
A.’A’B.’D’的ASCⅡ码C.65 D.37.语句char str[20];说明str是一个字符串,最多能表示()。
A.20个字符B.19个字符C.18个字符D.21个字符8.将int 型变量n转换成float型变量的方法是()。
A.float n B.(float)n C.float(n) D.21个字符9.以下不正确的描述是()。
A.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成B.while循环是先判断表达式后执行循环体语句C.do-while和for循环均是先执行循环体语句,后判断表达式D.for、while、do-while循环中的循环体均可以由空语句构成10.在循环中使用break 语句的功能是()。
A.使程序的执行跳出break所在的那一重循环B.使程序执行结束C.跳出包含此break语句的所有循环D.终止本次循环,继续下次循环11.下面是一个初始化指针的语句:int *px = &a;其中指针变量的名字应该是()。
C语言程序设计模拟试卷(2)
C语⾔程序设计模拟试卷(2)模拟试卷⼀⼀、选择题(每题1分,共15分) 在每⼩题列出的四个选项中只有⼀个是符合题⽬要求的,请在正确答案前点选,错选或未选均不得分。
1. 以下选项中不合法的⽤户标识是:正确答案A. _123B. printfC. A$D. Dim2. 在C 语⾔中,char 型数据在内存中的存储形式是:正确答案A. 补码B. 反码C. 原码D. ASCII 码正确答案:D3. 设x,y,z 为int 型变量,且x=3,y=4,z=5 ,则下⾯表达式中值为0 的是:正确答案A. 'x'&&'y'B. !((xC. x||y+z&&y-zD. x<=y正确答案:B4. 若有定义:int a=2,b=4,c; 执⾏语句c=a/b+2.6 ;后,c 的值为:正确答案A. 2.6D. 2正确答案:D5. 设a 为整型变量,不能确定表达数学关系10正确答案A. 10B. a==11|| a==12|| a==13|| a==14C. a>10&&a<15D. !(a<=10)&&!(a>=15)正确答案:C6. 若i 、j 已定义为int 型,则以下程序段中语句printf( “ %d ” ,i*j); 的执⾏次数是:for (i=3;i>0;i-- )for (j=0;j<4;j++ )printf( “ %d ” ,i*j);正确答案A. 12B. 15C. 16D. 20正确答案:A7. 若有输⼊语句“ scanf( "%d%d%d",&x,&y,&z); ”,则不能使x值为5,y 值为6,z值为7的输⼊是:正确答案A. 5 ,6 ,7< 回车>B. 5 6 7< 回车>C. 5 6 < 回车> 7< 回车>D. 5< 回车> ,6< 回车> ,7< 回车>正确答案:A8.执⾏以下程序段后,x ,y 和z 的值分别是:int x=10,y=20,z=30;if(x>y) z=x; x=y; y=z;正确答案:B9. 以下程序段x = -1;do{ x=x*x;} while(!x); 正确的说法是:正确答案A. 死循环B. 循环⼀次C. 循环两次D. 有语法错正确答案:B10. 以下正确的函数声明形式是:正确答案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) ;正确答案:C11.若有定义char ch[8] ,则以下表达式中不能代表数组元素ch[1] 的地址是:正确答案A. &ch[0]+1B. &ch[1]C. &ch[0]++D. ch+1正确答案:C12. 若有初始化语句“ int a[5]={1,2,3,4,5}; ”,值为4 的表达式是:正确答案:C13. 若已有以下函数定义:float fun(float a, int b){int c;c=(int)a%b;return c;}则主调函数中语句“ printf("%f",fun(fun(fun(34,7),4),3)); ”的输出结果是:正确答案A. 2.000000B. 因参数类型与形参类型不⼀致,函数调⽤产⽣错误C. 2D. 因变量c 的类型与fun 函数的返回值类型不符,故输出值为随机值正确答案:A14. 已知:int a[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+2 ;则值为3 的表达式是:正确答案A. (*p)++B. *p++C. *++pD. ++*p正确答案:B15. 以下可作为函数fopen 中第⼀个参数的正确格式是:正确答案A. c:\user\file.txtB. "c:\user\file.txt"C. "c:\\user\\file.txt"⼆、填空题(共10题)1. 字符串存储时,末尾被系统⾃动加上字符。
c语言程序设计试题及答案解析
c语言程序设计试题及答案解析C语言程序设计试题及答案解析一、选择题1. 下列哪个选项不是C语言的基本数据类型?A. intB. floatC. stringD. double答案:C2. C语言中,以下哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C二、填空题1. 在C语言中,用于定义一个整型变量的关键字是______。
答案:int2. 若有以下C语言代码段:```cint a = 5, b = 10;printf("%d", a + b);```执行后输出的结果是______。
答案:15三、简答题1. 简述C语言中数组的定义和初始化方式。
答案:在C语言中,数组是一种基本的数据结构,用于存储具有相同类型的多个元素。
数组的定义方式为:类型名数组名[数组大小];初始化方式可以是静态初始化,即在定义时直接赋值,如:int arr[5] = {1, 2, 3, 4, 5}; 或者动态初始化,即在定义后使用循环或赋值语句逐一赋值。
四、编程题1. 编写一个C语言程序,实现求一个整数的阶乘。
```c#include <stdio.h>int factorial(int n) {if (n == 0)return 1;elsereturn n * factorial(n - 1);}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d 的阶乘是:%d\n", num, factorial(num));return 0;}```五、分析题1. 请分析以下C语言代码段的运行结果,并解释原因。
```c#include <stdio.h>int main() {int x = 10;printf("%d", x++);return 0;}```答案:代码段的运行结果是10。
C语言程序设计A模拟考核试题及解答
C 语言程序设计A 》模拟考核试题及解答一、选择题1.由C 语言源程序文件编译而成的目标文件的缺省扩展名为( ) 。
A. cppB. exeC. objD. C2. C 语言程序的基本模块为( )。
A. 表达式B. 标识符C. 语句D. 函数3.x>0 || y==5 的相反表达式为( )。
A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==54.枚举类型中的每个枚举常量的值都是一个( )。
A. 整数B. 浮点数C. 字符D. 逻辑值5.循环语句“ for(int i=0; i<n; i++) S; ”中循环体S 被执行的次数为( )A. 1B. n-1C. nD. n+16.在下面的while 循环语句中,其循环体被执行的次数为( )。
int i=0,s=0; while(s<20) {i++; s+=i;}A. 4B. 5C. 6D. 77.若定义了函数double *function(), 则返回值类型为( )。
A. 实数型B. 实数指针型C. 函数指针型D. 数组型8.若用数组名作为函数调用的实参,传递给形参的是( )。
A. 数组的首地址B. 数组中第一个元素的值C. 数组中全部元素的值D. 数组元素的个数9. 假定a 为一个整型数组名,则元素a[4] 的地址比该数组的首地址大( ) 个字节。
A. 4B. 8C. 16D. 3210. 下列给字符数组赋初值时,正确的是( )。
A. char s1[]="abcdef";B. char s2[4]="abcd";C. char s3[2][3]={"abc","xyz"};D. char s4[4][]={'a','x','s','t'};A. char *p=s;B. char *p=&s;C. char *p;p=*s;D. char *p; p=&s;11.要使p 指向二维整型数组a[10][20] ,p 应定义为()。
《C语言程序设计》期末笔试模拟试卷及参考答案
《C语言程序设计》期末笔模拟试卷(本试卷满分60分)院系学号姓名1. 答案均写在答题纸上,写在卷面上无效;2. 答题结束后将试卷及答题纸全部交给监考教师;一、单选题 (1分×16,共16分)1. 下面 (1) 是正确的局部数组声明CA. char a[][5]={“math”,“phy”,“chemi” };B. int b[3][3]={{1,2,3},4,5,6,7,{8,9}};C. float c[sizeof(sin(1))]={1,‘\n’};D. char ch[ ][10]={“Beijing”,“Nanjing”},*p[ ]={ ch[0],ch[1] };2. 如下哪个程序语法、语义都正确,且能获得正确的运行结果(2) A3. 若有声明:enum d{ e,s,w,n}c=s;则表达式“ops”+ c值的类型是 (3) 。
B A. enum d B. char * C. int D. int *4. 下列叙述中除 (4) 之外都是正确的。
BA.引用函数说明中指定的形参名,不必与函数定义中对应的形参名相同。
B.不能用extern定义一个外部变量、数组。
C. 无论在函数外还是在函数内说明引用本程序中定义的函数,都可不写extern关键字。
D.用extern说明引用一个外部数组时,可以不给出数组大小。
5. 下列能正确执行的程序是: (5) A6. 对于二维数组定义: int a[i][j]; (i、j均为常量),且有:0≤m<i,0≤n<j , 则下列除 (6) 外,都是不等价的。
BA. a+m 与 a[0]+mB. a+m 与 *(a+m)C. *(a+m) 与 *a[m]D. *a 与 *a[0]7. 若程序中有声明:“float a,b[3][4];”与引用函数的说明:“int fun(floatk[][3]),int n);”则下列 (7) 都是常量或常量表达式。
C语言程序设计模拟试题1(附答案)
《C语言程序设计》模拟试卷一一、单项选择题(每题2分,共30分)1、下列有关C语言的叙述中错误的是(D)。
A) C语句必须以分号结束B) 任何一个C程序中有且只有一个主函数C) 复合语句在语法上可被看作一条语句D) C程序中对数据的任何操作都可由运算符实现2、以下不能定义为用户标识符的是(C)。
A) MAIN B) _HJ C)2ong D) LINE13、下列符号中用来表示C语言中的回车换行的是(B)。
A) \r B) \n C)\b D) \t4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为(B)。
A) 1, 1 B) 1, 2 C) 2, 2 D)2, 15、已知ch为字符型变量,下面表达式中正确的是(A)。
A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ”6、以下能正确定义一维数组的是(C)。
A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”;C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5};7、以下语句中能正确定义变量并赋初值的是(A)。
A) char c=65; B) float f=f+1.1;C) double x=12.3e3.6; D) int m=n=2.0;8、在执行下列程序时输入:1357924,则程序的运行结果为(D)。
main( ){ int x, y;scanf(“%2d%2d”,&x,&y);printf(“%2d”,x*y); }A) 13 B) 1357 C) 74 D) 7419、执行下列程序段后输出的结果是(C)。
x = 9;while (x > 7){ printf(“*”); x- -; }A) **** B) *** C) ** D) *10、设char str1[10] = “ABCDE”, str2[10] = “xyz”;则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是(D)A) 9 B) 8 C) 5 D) 311、若用数组名作为函数调用的实参,则传递给形参的是(A)A) 数组的首地址B) 数组第一个元素的值C) 数组中全部元素的值 D) 数组元素的个数12、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为( A ) A)void B)double C)int D)char13、下面不能正确进行字符串赋值操作的语句是(A)A) char s[5]={"ABCD"};B) char s[5]; s="ABCD";C) char *s;s="ABCDEF"; D) char *s="ABCD";14、设有说明int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为3的是(B )A)++p B)++(*p) C) *(++p) D) *(p+=2)15、下面程序的输出结果是(B)int m=13;int fun( int x, int y){ int m=3;return( x*y-m); }main( ){ int a=7,b=5;printf(“%d\n”, fun(a,b)/m); }A) 1 B) 2 C) 3 D) 10二、判断(每空1分,共10分)1、C语言有三种结构化程序设计方法,分别为顺序结构、选择结构和循环结构。
C语言程序设计试题及答案解析[1]
C语言程序设计试题第1、2、3章概述、类型、表达式一、选择题1、一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:()A、任意B、第一个函数必须是主函数,其他函数任意C、必须完全按照执行的顺序排列D、其他函数可以任意,主函数必须在最后2、下列四个叙述中,正确的是:()A、C程序中的所有字母都必须小写B、C程序中的关键字必须小写,其他标示符不区分大小写C、C程序中的所有字母都不区分大小写D、C语言中的所有关键字必须小写3、下列四个叙述中,错误的是:()A、一个C源程序必须有且只能有一个主函数B、一个C源程序可以有多个函数C、在C源程序中注释说明必须位于语句之后D、C源程序的基本结构是函数4、下面不是C语言合法标识符的是:()A、abcB、5nC、_4mD、x35、以下叙述不正确的是:()A. 分号是C语句的必要组成部分B. C程序的注释可以写在语句的后面C. 函数是C程序的基本单位D. 主函数的名字不一定非用main来表示6、C语言中允许的基本数据类型包括:()A. 整型、实型、逻辑型B. 整型、实型、字符型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型、字符型7、C语言中能用八进制表示的数据类型为:()A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型8、下列属于C语言合法的字符常数是:()A、’\97’B、”A”C、’\t’D、”\0”9、在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:()A、char<int<=long int <=float<doubleB、char=int<long int <=float<doubleC、char<int<long int=float=doubleD、char=int=<long int <=float<double10、在C语言中(VC环境),一定是长整型常数的是:()A、0LB、4962710C、0412765D、0xa34b7fe11、若有以下定义语句char c1=’b’, c2=’e’;printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’);则输出结果是:()A、2,MB、3,EC、2,ED、输出项与相应的格式控制不一致,输出结果不确定12、以下合法的赋值语句是:()A、x=y=100B、d--;C、x + yD、c = int(a+b);13、设变量t为int型,下列选项中不正确的赋值语句是:()A、++t;B、n1=(n2=(n3=0));C、k=i==m;D、a=b+c=1;14、在以下一组运算符中,优先级最高的是:()A、<=B、==C、%D、&&15、下列能正确表示a≥10或a≤0的关系表达式是:()A、a>=10 or a<=0B、a<=10 || a>=0C、a>=10 || a<=0D、a>=10 && a<=016、下列只有当整数x为奇数时,其值为“真”的表达式是:()A、x%2==0B、!(x%2==0)C、(x-x/2*2)==0D、!(x%2)17、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:()A、1 0< a < 15B、!(a<=10 || a>=15)C、a>10 && a<15D、!(a<=10) && !(a>=15)18、已知x=43, ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:()A、0B、语法错C、1D、“假”19、表达式17%4 /8的值为:()A、0B、1C、2D、320、语句printf(“%d”,(a=2)&&(b= -2));的输出结果是:()A、无输出B、结果不确定C、-1D、121、一个可执行的C程序的开始执行点是:()A. 程序中的第一个语句B. 包含文件中的第一个函数C. 名为main的函数D. 程序中的第一个函数22、组成C语句的一个必不可少的符号是:()A. 逗号B. 引号C. 冒号D. 分号23、若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:()A. intB. longC. floatD. double24、下述是C语言中有关变量定义的几个说法,正确的是:()A. 变量可以不定义直接使用B. 一个说明语句只能定义一个变量C. 几个不同类型的变量可在同一语句中定义D. 变量可以在定义时进行初绐化25、与x * = y + z等价的赋值表达式是:()A. x = y + zB. x = x * y + zC. x = x * (y + z)D. x = x + y * z26、当代电子计算机能够自动地处理指定的问题是因为:()A.计算机是电动的B.有解决该问题的计算机程序C.事先存储了解决该问题的程序D.以上都不是27、以下叙述中最准确的是:()A.计算机程序是处理某一问题所有指令的集合B.计算机程序是处理某一问题所用到的所有数据的集合C.计算机程序是处理某一问题的所有指令及其数据的集合D.计算机程序是处理某一问题的所有指令及其数据的有序集合28、关于计算机程序设计,以下描述最准确的是:()A.程序设计就是用语言来编写程序B.程序设计就是用计算机语言来编写程序C.程序设计就是用计算机程序设计语言来编写程序D.程序设计就是用计算机能识别的语言来编写程序29、目前编写计算机程序一般采用的是:()A.机器语言B.汇编语言C.高级语言D.英语30、设计一个计算机程序最基本的工作是:()A.制定正确的算法B.选择合理的数据结构C.制定正确的算法和选择合理的数据结构D.以上都不是31、算法具有五个特性,以下选项中不属于算法特性的是:()A.有穷性B.简洁性C.可行性D.确定性32、下述哪一个不是结构化程序基本结构:()A.顺序B.选择C.循环D.嵌套33、C语言是一种:()A.机器语言B.汇编语言C.高级语言D.以上都不是34、C语言源程序的扩展名为:()A..exe B..c C..obj D..cpp35、C程序编译后最终产生(即计算机执行)的文件的扩展名为( )A..exe B..c C..obj D..cpp36、下列各项中,不是C语言的特点是:()A.语言简洁、紧凑,使用方便B.程序执行效率高,可移植性好C.能实现汇编语言的大多数功能D.有较强的网络操作功能37、构成C语言源程序的基本单位是:()A.子程序B.过程C.文本D.函数38、下列叙述正确的是:()A.C语言源程序可以直接在DOS环境中运行B.编译C语言源程序得到的目标文件可以直接在DOS环境中运行C.C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行D.C语言源程序可以直接在VC++环境中运行39、某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:()A.写在前面的函数先开始执行B.总是从main()函数开始执行C.总是从max()函数开始执行D.写在后面的函数先开始执行40、以下叙述不正确的是:()A.分号是C语句的必要组成部分B.C程序的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定用mian表示41、以下为C语句的是:()A.a=8 B.a++;C.if(a>8) D. #include <stdio.h> 以下不是C语句的是:()A.a=8; B.a++;C.if(a>8);D.for(i=1;i<5;i++) 42、以下所列语句中,合法的语句是:( )A.a=1,b=2 B.++a; C.a=a+1=5 D.y=int(a);43、C程序中的复合语句指的是:()A.并列的多个C语句B.写在同一行中的多个C语句C.用一对大括号对括的多个C语句 D.就是函数体中的语句44、当一个很长的C语句(中间无字符串)在一行写不下(超出屏幕的宽度)时,应该:( )A.由系统自动换行B.立即按回车键换行C.在任意一个空格处按回车键换行D.输入一个分号后并按回车键换行换行45、在x值处于-2~2,4~8时值为“真”,否则为“假”的表达式是:( )。
c语言程序设计考试题答案及解析
c语言程序设计考试题答案及解析一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中合法的标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B解析:在C语言中,标识符可以由字母、数字和下划线组成,但不能以数字开头,也不能包含特殊字符如$、-等。
2. C语言中,哪个关键字用于声明一个整型变量?A. intB. floatC. doubleD. char答案:A解析:int是用于声明整型变量的关键字,float用于声明浮点型变量,double用于声明双精度浮点型变量,char用于声明字符型变量。
3. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. ||D. &答案:A解析:&&是逻辑与运算符,||是逻辑或运算符,&是按位与运算符,而|是按位或运算符。
4. C语言中,哪个函数用于计算两个整数的和?A. max()B. min()C. sum()D. pow()答案:C解析:sum()函数通常用于计算两个整数的和,而max()和min()函数分别用于找出两个数中的最大值和最小值,pow()函数用于计算幂。
5. 在C语言中,哪个关键字用于循环结构?A. ifB. whileC. forD. switch答案:B、C解析:while和for都是C语言中的循环结构关键字,if用于条件判断,switch用于多条件分支选择。
6. C语言中,哪个函数用于输出字符串?A. printf()B. scanf()C. gets()D. puts()答案:D解析:puts()函数用于输出字符串,printf()用于格式化输出,scanf()用于输入,gets()函数已不推荐使用,因为它可能导致缓冲区溢出。
7. 下列哪个选项是C语言中的数组声明?A. int a[10];B. int a[];C. int a;D. int a=10;答案:A解析:int a[10];是声明一个有10个元素的整型数组的正确方式,B 选项没有指定数组大小,C选项声明了一个整型变量,D选项是对整型变量进行赋值。
C语言程序设计模拟试题一(含答案)
C语言程序设计模拟试题一(含答案)1、下列述叙中正确的是A) 显示器和打印机都是输出设备B) 显示器只能显示字符C) 通常的彩色显示器都有7种颜色D) 打印机只能打印字符和表格2、微型计算机中运算器的主要功能是进行A) 算术运算B) 逻辑运算C) 算术和逻辑运算D) 初等函数运算3、是DOS系统的最外层模块,通常称之为A) 引导程序B) 输入输出系统C) 命令处理系统D) 文件管理系统4、电子邮件是A) 网络信息检索服务B) 通过Web网页发布的公告信息C) 通过网络实时交互的信息传递方式D) 一种利用网络交换信息的非交互式服务5、和十进制数225相等的二进制数是A) 11101110 B) 11111110C) 10000000 D) 111111116、下列叙述中正确的是A) 指令由操作数和操作码两部分组成\B) 常用参数xxMB表示计算机的速度C) 计算机的一个字长总是等于两个字节D) 计算机语言是完成某一任务的指令集7、计算机的内存储器比外存储器A) 价格便宜B) 存储容量大C) 读写速度快D) 读写速度慢8、设当前盘为C盘,执行DOS命令"COPY B:\A.TXT PRN"之后,结果是A) B盘上的A.TXT文件被复制到C盘的PRN文件B) 屏幕上显示B盘上的A.TXT文件内容C) B盘上的A.TXT文件内容在打印机上输出D) B盘上的A.TXT文件被复制到B盘上的PRN文件9、要将当前盘当前目录下的两个文件X1.TXT和B1.TXT连接起来之后存入B盘当前目录下并且命名为Z.TXT,无论B 盘当前目录是什么,完成这件任务可以使用的命令是A) COPY A:X1.TXT+C:B1.TXT Z.TXTB) COPY X1.TXT+C:\\WS\\B1.TXT B:\\Z.TXTC) COPY A:X1.TXT+C:\\WS\\B1.TXTD) COPY X1.TXT+B1.TXT B:Z.TXT10、下列四组DOS命令中,功能等价的一组是A) COPY A:*.* B:与DISKCOPY A: B:B) COPY ABC.TXT+XYZ.TXT 与TYPE XYZ.TXT>>ABC.TXTC) COPY ABC.TXT+XYZ.TXT与COPY XYZ.TXT+ABC.TXTD) TYPE *.FOR>CON与COPY *.FOR CON11、设当前目录为D:\BB,现要把D:\AA目录下首字符是A的文本文件全部删除,应该使用命令A) DEL A*.TXT B) DEL \\AA\\A.TXTC) DEL \\AA\\A*.TXT D) DEL \\AA\\A?.TXT12、在Windows中,启动应用程序的正确方法是A) 用鼠标指向该应用程序图标B) 将该应用程序窗口最小化成图标C) 将该应用程序窗口还原D) 用鼠标双击该应用程序图标13、在Windows中,终止应用程序执行的正确方法是A) 将该应用程序窗口最小化成图标B) 用鼠标双击应用程序窗口右上角的还原按钮C) 用鼠标双击应用程序窗口中的标题栏D) 用鼠标双击应用程序窗口左上角的控制菜单框14、在微机系统中,对输入输出设备进行管理的基本程序模块(BIOS)存放在A) RAM中B) ROM中C) 硬盘中D) 寄存器中15、使计算机病毒传播范围最广的媒介是A) 硬磁盘B) 软磁盘C) 内部存储器D) 互联网16、设有int x=11; 则表达式(x++ * 1/3) 的值是A) 3 B) 4C) 11 D) 1217、下列程序的输出结果是main(){ double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf("%d \n", d*y);}A) 3 B) 3.2C) 0 D) 3.0718、下列程序执行后的输出结果是(小数点后只写一位)main(){ double d; float f; ling l; int i;i=f=1=d=20/3;printf("%d %ld %f %f \n", i,l,f,d);}A) 6 6 6.0 6.0 B) 6 6 6.7 6.7C) 6 6 6.0 6.7 D) 6 6 6.7 6.019、下列变量定义中合法的是A) short _a=1-.le-1; B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=1-e-3;20、设int x=1, y=1; 表达式(!x||y--)的值是A) 0 B) 1C) 2 D) -121. 与y=(x>0?1:x<0?-1:0);的功能相同的if语句是A) if (x>0) y=1;else if(x<0)y=-1;else y=0;B) if(x)if(x>0)y=1;else if(x<0)y=-1;else y=0;C) y=-1if(x)if(x>0)y=1;else if(x==0)y=0;else y=-1;D) y=0;if(x>=0)if(x>0)y=1;else y=-1;22. 以下循环体的执行次数是main(){ int i,j;for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);}A) 3 B) 2C) 1 D) 023. 以下叙述正确的是A) do-while语句构成的循环不能用其它语句构成的循环来代替B) do-while语句构成的循环只能用break语句退出C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环D) 用do-while语句构成的循环,在while后的表达式为零时结束循环24. 下列程序执行后的输出结果是main(){ int x='f'; printf("%c \n",'A'+(x-'a'+1)); }A) G B) HC) I D) J25. 执行下面的程序段后,变量k中的值为int k=3, s[2];s[0]=k; k=s[1]*10;A) 不定值B) 33C) 30 D) 1026. 若已定义:int a[ ]={0,1,2,3,4,5,6,7,8,9}, *p=a,i; 其中0≤i≤9, 则对a数组元素不正确的引用上A} a[p-a] B} *(&a[i])C} p[i] D} a[10]27、下列程序执行后的输出结果是void func(int *a,int b[]){ b[0]=*a+6; }main(){ int a,b[5];a=0; b[0]=3;func(&a,b); printf("%d \n,b[0]);}A) 6 B) 7C) 8 D) 928、下列程序的运行结果是#include <stdio.h>main(){ int a=2,c=5;printf("a=%d,b=%d\n",a,c); }A) a=%2,b=%5 B) a=2,b=5C) a=d, b=d D) a=%d,b=%d29、下列程序执行后的输出结果是main(){ int a[3][3], *p,i;p=&a[0][0];for(i=p; i<9; i++) p[i]=i+1;printf("%d \n",a[1][2]);}A) 3 B) 6C) 9 D) 随机数30、设有数组定义: char array [ ]="China"; 则数组array所占的空间为A) 4个字节B) 5个字节C) 6个字节D) 7个字节31、下列程序的输出结果是int b=2;int func(int *a){ b += *a; return(b);}main(){ int a=2, res=2;res += func(&a);printf("%d \n",res);}A) 4 B) 6C) 8 D) 1032、在以下四组中,每组有两个分别运算的函数,运算结果相同的是main(){ int i, j, m=0, n=0;for(i=p; i<2; i++)for(j=0; j<2; j++)if(j>=i) m=1; n++;printf("%d \n",n);}A) 4 B) 2C) 2 D) 033、下列程序的输出结果是struct abc{ int a, b, c; };main(){ struct abc s[2]={{1,2,3},{4,5,6}}; int t;t=s[0],a+s[1],b;printf("%d \n",t);}A) 5 B) 6C) 7 D) 834、设int b=2;表达式(b>>2)/(b>>1)的值是A) 0 B) 2C) 4 D) 835、在C程序中,可把整型数以二进制形式存放到文件中的函数是A) fprintf函数B) fread函数C) fwrite函数D) fputc函数36、下列程序执行后的输出结果是main(){ char x=0xFFFF; printf("%d \n",x--); } A) -32767 B) FFFEC) -1 D) -3276837、若有定义: float w;int a, b;则合法的switch语句是A) switch(w){ case 1.0: printf("*\\n");case 2.0: printf("**\\n");}B) switch(a);{ case 1 printf("*\\n");case 2 printf("**\\n");}C) switch(b){ case 1: printf("*\\n");default: printf("\\n");case 1+2: printf("**\\n");}D) switch(a+b);{ case 1: printf("*\\n");case 2: printf("**\\n");default: printf("\\n");}38、以下程序段的执行结果是int a, y;a=10; y=0;do{ a+=2; y+=a;printf("a=%d y=%d\n",a,y);if(y>20) break;{ while(a=14);A} a=12 y=12a=14 y=16a=16 y=20a=18 y=24B} a=12 y=12a=16 y=28C} a=12 y=12D} a=12 y=12a=14 y=26a=14 y=4439、若有以下调用语句,则不正确的fun函数的首部是main(){ …int a[50],n;…fun(n, &a[9]);…A} void fun(int m, int x[]) B} void fun(int s, int h[41])C} void fun(int p, int *s) D} void fun(int n, int a)40、语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是(说明:'\b'是退格符)A) a\\bre\\'hi\\'y\\\\\\bou B) a\\bre\\'hi\\'y\\bouC) re'hi'you D) abre'hi'y\\bou41、请选出正确的程序段A) int *p;scanf("%d",p);…B) int *s, k;*s=100;…C) int *s, k;char *p, c;s=&k;p=&c;*p='a';…D) int *s, k;char *p, e;s=&k;p=&c;s=p;*s=1;42、已知指针p的指向如下图所示,则执行语句*--p;后*p的值是A) 30 B) 20C) 19 D) 2943、设已有定义:char *st="how are you";下列程序段中正确的是A) char a[11], *p; strcpy(p=a+1,&st[4]);B) char a[11]; strcpy(++a, st);C) char a[11];strcpy(a, st);D) char a[], *p;strcpy(p=&a[1],st+2);44、下列程序执行后的输出结果是mai(){ char arr[2][4];strcpy(arr,"you"); strcpy(arr[1],"me");arr[0][3]='&';printf("%s \n",arr);}A) you&ne B) youC) me D) err45、下列程序执行后的输出结果是void func1(int i);void func2(int i);char st[]="hello,friend!";void func1(int i){ printf("%c",st[i]);if(i<3){i+=2;func2(i);}}void func2(int i){ printf("%c",st[i]);if(i<3){i+=2;func1(i);}}main(){ int i=0; func1(i); printf("\n");}A) hello B) helC) hlo D) hlm46、假定下列程序的可执行文件名为prg.exe,则在该程序所在的子目录下输入命令行: prg hello good<回车>后,程序的输出结果是main()int argc, char *argv[]){int i;if(argc<-0)return;for(i=1;i<argc;i++)printf("%c", *argv[i]);}A) hello good B) hgC) hel D) hellogood47、下列程序执行后的输出结果是#define MA(x) x*(x-1)main(){ int a=1,b=2;printf("%d \n",MA(1+a+b));}A) 6 B) 8C) 10 D) 1248、变量a所占内存字节数是union U{ char st[4];int i;long l;};struct A{ int c;union U u;}a;A) 4 B) 5C) 6 D) 849、执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是main(){char s[100];int c, i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s \n",c,i,s);}A) 123,456,789 B) 1,456,789C) 1,23,456,789 D) 1,23,45650、执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是main(){char s[100];int c, i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s \n",c,i,s); }A) 123,456,789 B) 1,456,789 C) 1,23,456,789 D) 1,23,456答案:ACCDD ACCDBCDDBD ACAABACDAA DABBCBABDA CDBCCCBABC BBCDD。
C语言程序设计A期末模拟试题(1-4)
C 语言程序设计A 期末模拟试题一 一、单项选择题(每小题2分,共20分) 1. 由C++目标文件连接而成的可执行文件的缺省扩展名为( )。
A. cpp B. exe C. obj D. lik 2. x >0 && x<=10的相反表达式为( )。
A. x<=0 || x>10 B. x<=0 && x>10 C. x<=0 || x<=10 D. x>0 && x>10 3. 在下面的一维数组定义中,哪一个有语法错误。
( C ) A. int a[]={1,2,3}; B. int a[10]={0}; C. int a[]; D. int a[5]; 4. 假定p 是具有double 类型的指针变量,则表达式++p 使p 的值(以字节为单位)增加( C )。
A. 1 B. 4 C. sizeof(double) D. sizeof(p) 5. 当#include 后面的文件名用双引号括起来时,寻找被包含文件的方式是( B )。
A. 直接按系统设定的标准方式搜索目录 B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录 C. 仅仅搜索源程序所在目录 D. 搜索当前逻辑盘上的所有目录 6. 假定指针变量p 定义为“int *p=new int(100);”,要释放p 所指向的动态内存,应使用语句( A )。
A. delete p; B. delete *p; C. delete &p; D. delete []p; 7. 假定AA 为一个类,a 为该类公有的数据成员,px 为指向该类对象的一个指针,则访问px 所指对象中数据成员a 的格式为( )。
A. px(a) B. px[a] C. px->a D. px.a 8. 栈具有( )的操作特性。
A. 先进先出 B. 先进后出 C. 进出无序 D. 进出任意 9. 对于任一个类,用户所能定义的构造函数的个数至多为( )。
c语言a类卷子题库及详解答案
c语言a类卷子题库及详解答案C语言A类卷子题库及详解答案一、选择题1. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function答案:A2. 下列哪个选项是C语言中的合法标识符?A. 3variableB. variable-nameC. variable#nameD. variable_name答案:D3. 以下哪个语句可以用来输入一个整数?A. scanf("%d", &number);B. printf("%d", number);C. cout << number;D. input("%d", &number);答案:A4. 在C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C5. 下列哪个选项是C语言中的数组声明?A. int numbers;B. int numbers[10];C. int numbers(10);D. int [10] numbers;答案:B二、填空题6. 在C语言中,若要定义一个字符变量来存储字符'A',可以使用以下语句:________。
答案:char ch = 'A';7. C语言中,用于实现条件判断的关键字是________。
答案:if8. 在C语言中,循环结构包括________和________。
答案:for, while9. 要声明一个指向整型的指针变量,可以使用以下语句:________。
答案:int *ptr;10. C语言中,用于定义一个结构体的关键字是________。
答案:struct三、简答题11. 简述C语言中数组和指针的区别。
答案:数组是一种数据结构,用于存储一系列相同类型的元素,而指针是一个变量,它存储了另一个变量的内存地址。
数组名是一个指向数组首元素的指针常量,而指针变量可以被重新赋值指向不同的内存地址。
c语言程序设计期末试题A(含答案)
c语言程序设计期末试题A(含答案)一、单项选择题(选择一个最佳答案,每题2分,共20分)1.一个C程序的执行是从(A )。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束2.下列选项中,不能用作标识符的是(D )。
A) _1234_ B) _1_2 C) int_2_ D) 2_int_3.以下定义语句中正确的是( C)。
A) char a='A'b='B'; B) float a=b=10.0;C) int a=10,*b=&a; D) float *a,b=&a;4.设有以下定义:#define d 2int a=0; double b=1.25; char c=’A’;则下面语句中错误的是(B)。
A) a++; B) b++ C) c++; D) d++;5.以下4个选项中,不能作为一条C语句的是(D)。
A) {;} B) a=0,b=0,c=0; C) if(a>0); D) if(b==0) m=1;n=2;6.有以下定义语句 double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是( C)。
A) a=a+b=b++ B) w%(int)a+b) C) (c+w)%(int)a D) w=a==b;7.设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是(D)。
A) p=1; B) *q=2; C) q=p; D) *p=5; 选D.A.p是一个指针,不能给它赋一个整型的值1B.*q仍然是一个指针,*q就是p.所以也不能给它赋一个整型的值.C.q=p;q是个二级指针,p是一级指针,不能把一级指针赋给二级指针.*p=5,即给n赋值为5,正确.8.设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是( A)。
c语言程序设计a试题及答案
c语言程序设计a试题及答案一、选择题(每题2分,共10分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 在C语言中,以下哪个运算符用于计算两个数的和?A. %B. +C. ==D. &&答案:B3. 下列哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. variable$2D. variable_2答案:D4. C语言中,用于定义一个函数的关键字是?A. functionB. defineC. defD. int答案:D5. 在C语言中,以下哪个选项是正确的字符串定义?A. char str[] = "Hello";B. char str = "Hello";C. char str[] = {'H', 'e', 'l', 'l', 'o'};D. char str[] = "Hello", "World";答案:A二、填空题(每题2分,共10分)1. C语言中,用于定义一个整型变量的关键字是________。
答案:int2. 如果希望在C语言中定义一个全局变量,应该将其定义在________区域。
答案:函数外部3. C语言中,用于定义一个浮点型变量的关键字是________。
答案:float4. 在C语言中,________关键字用于定义一个数组。
答案:array5. 如果希望在C语言中定义一个字符型变量,应该使用关键字________。
答案:char三、简答题(每题5分,共20分)1. 请简述C语言中指针的概念。
答案:指针是C语言中一个特殊的变量,它存储的是另一个变量的内存地址。
2. 解释C语言中数组和指针的关系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言程序设计A》模拟考核试题及解答一、选择题1. 由C语言源程序文件编译而成的目标文件的缺省扩展名为( )。
A. cppB. exeC. objD. C2. C语言程序的基本模块为()。
A. 表达式B. 标识符C. 语句D. 函数3. x>0 || y==5的相反表达式为()。
A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==54. 枚举类型中的每个枚举常量的值都是一个()。
A. 整数B. 浮点数C. 字符D. 逻辑值5. 循环语句“for(int i=0; i<n; i++) S;”中循环体S被执行的次数为( )。
A. 1B. n-1C. nD. n+16. 在下面的while循环语句中,其循环体被执行的次数为()。
int i=0,s=0; while(s<20) {i++; s+=i;}A. 4B. 5C. 6D. 77. 若定义了函数 double *function(), 则返回值类型为()。
A. 实数型B. 实数指针型C. 函数指针型D. 数组型8. 若用数组名作为函数调用的实参,传递给形参的是()。
A. 数组的首地址B. 数组中第一个元素的值C. 数组中全部元素的值D. 数组元素的个数9. 假定a为一个整型数组名,则元素a[4]的地址比该数组的首地址大( )个字节。
A. 4B. 8C. 16D. 3210. 下列给字符数组赋初值时,正确的是()。
A. char s1[]="abcdef";B. char s2[4]="abcd";C. char s3[2][3]={"abc","xyz"};D. char s4[4][]={'a','x','s','t'};A. char *p=s;B. char *p=&s;C. char *p;p=*s;D. char *p; p=&s;11. 要使p指向二维整型数组a[10][20],p应定义为()。
A. int *p=a;B. int **p=a;C. int *p[20]=a;D. int(*p)[20]=a;12. 标准输入设备的文件流标识符是()。
A. stdinB. stdoutC. stderrD. stdio13. 若要以读/写操作方式打开一个二进制文件,当文件不存在时返回打开失败信息,则选用的打开方式字符串为()。
A. "r+"B. "ab+"C. "rb+"D. "wb+"二、填空题1. 单行或多行注释的开始标记符为__________。
2. 使用#include命令可以包含一个头文件,也可以包含一个______文件。
3. 执行“printf("%s%s%d","wei","rong",18);”语句后得到的输出结果为________。
4.执行“printf("%c",'A'+2);”语句后得到的输出结果为________。
5.short类型的大小为________个字节。
6. 十进制数3.26f的类型为________。
7. 假定y=10,则表达式++y*3的值为________。
8. 关系表达式(x==0)的等价表达式为________。
9.若x=5,y=10,则x!=y的逻辑值为________。
10. 在if语句中,每个else关键字与它前面同层次并且最接近的________关键字相配套。
11. 当在程序中执行到________语句时,将结束所在循环语句中循环体的一次执行。
12. 假定二维数组的定义为“char a[M][N];”,则该数组所占存储空间的字节数为________。
13. 存储字符串"a"需要占用存储器的________个字节空间。
14. strlen函数用于计算一个字符串的________。
15.函数中的形参变量的初值由调用该函数时对应的________值决定。
16. 程序的编译是以__________为单位进行的。
17. 假定a是一个一维数组,则a[i]的指针访问方式为________。
18. 执行int *p=malloc(sizeof(int))操作得到的一个动态分配的整型对象为________。
19. 假定要动态分配一个类型为struct Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句表达式为________________ =malloc(n*sizeof(struct Worker))。
20. 与结构成员访问表达式p->name等价的表达式是____________。
三、写出下列每个程序运行后的输出结果1. #include<stdio.h>void main() {int i, s=0;for(i=1;;i++) {if(s>50) break;if(i%2==0) s+=i;}printf("i,s=%d, %d\n",i,s);}2. #include<stdio.h>void main() {char ch='*';int i, n=5;while(1) {for(i=0;i<n;i++) printf("%c",ch);printf("\n");if(--n==0) break;}}3. #include<stdio.h>void main(){int x=24,y=88;int i=2,p=1;do {while(x%i==0 && y%i==0) {p*=i; x/=i; y/=i;}i++;}while(x>=i && y>=i);printf("%d\n",p*x*y);}4. #include<stdio.h>void main() {int a[9]={36,25,48,24,55,40,18,66,20};int i, b1, b2;a[0]<=a[1]? (b1=a[0], b2=a[1]):(b1=a[1],b2=a[0]); for(i=2; i<9; i++)if(a[i]<b1) {b2=b1; b1=a[i];}else if(a[i]<b2) b2=a[i];printf("%d %d\n",b1,b2);}5. #include<stdio.h>void main() {int a=10, b=20;printf("%d %d\n",a,b);{ int b=a+25;a*=4;printf("%d %d\n",a,b);}printf("%d %d\n",a,b);}6. #include<stdio.h>void SelectSort(int a[], int n){int i,j,k,x;for(i=1;i<n;i++) { //进行n-1次选择和交换k=i-1;for(j=i;j<n;j++)if(a[j]<a[k]) k=j;x=a[i-1]; a[i-1]=a[k]; a[k]=x;}}void main(){int i;int a[6]={20,15,32,47,36,28};SelectSort(a,6);for(i=0; i<6; i++) printf("%d ",a[i]);printf("\n");}7. #include<stdio.h>void LE(int* a, int* b) {int x=*a;*a=*b; *b=x;}void main() {int x=15, y=26;printf("%d %d\n",x,y);LE(&x,&y);printf("%d %d\n",x,y);}8. #include<stdio.h>#include<string.h>struct Worker {char name[15]; //姓名int age; //年龄float pay; //工资};int Equal(struct Worker* r1, struct Worker* r2){if(strcmp(r1->name, r2->name)==0) return 1;else return 0;}void main() {struct Worker a[4]={{"abc",25,420},{"defa",58,638},{"ghin",49,560},{"jklt",36,375}};struct Worker x={"defa"};int i;for(i=0; i<4; i++)if(Equal(a+i,&x)) break;if(i>=4) printf("没有查找所需要的记录!\n");else printf("%s %d %6.2f\n",a[i].name,a[i].age,a[i].pay);}四、写出下列每个函数的功能1. int SE(int n) { //n为大于等于1的整数int x,s=0;printf("输入%d个整数: ",n);scanf("%d",&x);if(n==1) return x;s=x;while(--n) {scanf("%d",&x); s+=x;}return s;}2. #include<stdio.h>void WA(int a[], int n) {int i,k,j,x;for(i=0;i<n-1;i++) {k=i;for(j=i+1;j<n;j++)if(a[j]>a[k]) k=j;x=a[i]; a[i]=a[k]; a[k]=x;}}3. #include<stdio.h>int* LJ(int a[], int n) {int i,k=0;for(i=1;i<n;i++)if(a[i]>a[k]) k=i;return &a[k];}4. int Output(struct IntNode *f){int sum=0;if(!f) return -9999; //用返回特定值-9999表示空表 while(f) {sum+=f->data;f=f->next;}return sum;}假定struct IntNode的类型定义为:struct IntNode {int data; //结点值域struct IntNode* next; //结点指针域};5. int wr4(FILE* fptr){char ch;int c=0;fseek(fptr,0,SEEK_SET);while(1) {ch=fgetc(fptr);if(ch!=EOF) c++;else break;}return c;}五、根据下列每个题目要求编写程序1. 编写一个函数fun(),首先从键盘上输入一个4行4列的一个实数矩阵到一个二维数组a[4][4]中,接着求出主对角线上元素之和,最后返回求和结果。